你能将浮点值精确地与零进行比较吗?
2022-09-01 20:10:31
我知道我们不能使用==比较2个浮点值。我们只能比较它们在彼此的某个区间内。我知道
if(val == 0.512)
由于浮点计算和转换为二进制时固有的错误而错误,并且应该是
if (val in (0.512-epsilon, 0.512+epsilon))
但是0特别吗?我们可以将浮点数精确地与0进行比较吗?或者甚至这是不正确的?特别是在C#和Java的上下文中?
double val = 0;
val = getVal();
if(val == 0)