可以这样做吗?
double doubleVariable=0.0;
if (doubleVariable==0) {
...
}
Run Code Online (Sandbox Code Playgroud)
或者这段代码会遇到潜在的舍入问题?
如果您只是与0进行比较,那么它是完全合法的,因为比较的右侧将自动转换为加倍.另一方面,如果您在哪里与== 0.10000001进行比较,它将产生所有舍入误差
你更好或者在这里阅读关于float to 0比较的讨论:将等式的浮点值检查为0 是否安全?
关于浮点数的奇怪精度问题,这个讨论也很有用:为什么这个问题的结果不同?
即以下将产生错误:
double d1 = 1.000001; double d2 =0.000001;
Console.WriteLine((d1-d2)==1.0);
Run Code Online (Sandbox Code Playgroud)