我有一个使用小数执行大量计算的系统,偶尔会添加相同的数字,但返回不同的结果,+/ - 0.000000000000000000000000001
这是一个简短的例子:
decimal a = 2.016879990455473621256359079m;
decimal b = 0.8401819425625631128956517177m;
decimal c = 0.4507062854741283043456903406m;
decimal d = 6.7922317815078349615022988627m;
decimal result1 = a + b + c + d;
decimal result2 = a + d + c + b;
Console.WriteLine((result1 == result2) ? "Same" : "DIFFERENT");
Console.WriteLine(result1);
Console.WriteLine(result2);
Run Code Online (Sandbox Code Playgroud)
那输出:
DIFFERENT
10.100000000000000000000000000
10.100000000000000000000000001
Run Code Online (Sandbox Code Playgroud)
差异很小,没有实际效果,但有人见过这样的事情吗?我期望在添加相同的数字时,您将始终获得相同的结果.