我用过函数:
fixedTo(1)
接近这样的数字:
-3.43321e-11
但问题是近似的结果是:
-0.0
带减号。
这是一个问题,因为在数学中不存在带负号的0,如果我这样做:
if(-0.0 === 0.0){}
它让我错误地认为是真的。我该如何解决?
答案 0 :(得分:3)
比较浮点值时,这是一个常见问题。 Float值几乎与你编写它们完全不同。所以你的-0.0实际上更像是-0.000001或其他东西。
如果要比较浮点值,则必须处理一定量的错误,如下所示:
if(Math.abs(value1 - value2) < 0.001) {
所以你基本上把所有差值小于0.001的浮点数视为相等。