最新のコンピューター システムで実行される浮動小数点演算は、実際の演算と常に一致するとは限らないことを理解しています。これを実証するために、小さな C# プログラムを考案しようとしています。例えば:
static void Main(string[] args)
{
double x = 0, y = 0;
x += 20013.8;
x += 20012.7;
y += 10016.4;
y += 30010.1;
Console.WriteLine("Result: "+ x + " " + y + " " + (x==y));
Console.Write("Press any key to continue . . . "); Console.ReadKey(true);
}
ただし、この場合、x
とy
は最終的には等しくなります。
同様の複雑さのプログラムを使用して、本当にクレイジーな数値を使用せずに、浮動小数点演算の矛盾を示すことは可能ですか? 可能であれば、小数点を数桁超える数学的に正しい値を避けたいと思います。