数学では、(実数の)足し算は交換可能かつ結合的です。すべての数値 x、y、z に対して
x + y = y + x (可換性)
と
x + (y + z) = (x + y) + z (結合性)
実数の乗算も交換可能で結合的です。しかし、これは .NET の int と float に当てはまりますか? 反例歓迎。
編集:背景は、最近アルゴリズムを並列化したところ、その結果が繰り返し間で一貫性がなくなったことです。これは、アトミック計算が非決定論的な順序で返される (およびマージされる) ためであると推測されます。その場合、矛盾は、よりスマートな (しかし遅い) マージ アルゴリズム (マージ前に結果を並べ替える) によって修正できます。.NET 算術演算についてどのような仮定を立てることができるか知りたいです。