如果我有以下代码(这是用.NET编写的)
double i = 0.1 + 0.1 + 0.1;
为什么不i相等0.3? 有任何想法吗?
i
0.3
您需要阅读浮点数.许多十进制数字没有二进制的精确表示,因此它们不是完全匹配.
这就是为什么在比较中,你倾向于看到:
if (abs(a-b) < epsilon) { ...
其中epsilon是一个很小的值,如0.00000001,具体取决于所需的精度.