导致-0的javascript等式

时间:2015-05-29 18:31:01

标签: javascript math

我有javascript等式:

var sbal=pfWeight-gWeight-adjm;
$("#result").html(sbal.toFixed(5));

如果结果为0,我将结果CSS颜色分配为绿色。 如果它不是0,我将CSS颜色红色分配给结果。

我的问题是有时数学出现为-0,因此显示为红色。

我甚至尝试过

if(sbal===0){sbal=parseInt(0);}

sbal === 0返回true。

我该如何解决这个问题?

jsfiddle

我知道Are +0 and -0 the same?解决了WHY -0 = +0但它没有提供和回答如何解决问题。

1 个答案:

答案 0 :(得分:1)

如果您唯一的问题是它有时会返回-0,您只需计算返回值的绝对值

Math.abs(-0); // 0

编辑: Javascript有一个奇怪的浮点数舍入:如果你对结果进行综合,它可以正常工作,那么你就不需要Math.abs(-0)。正如所指出的那样,-0和0应该是相同的值。

这对我有用:

var sbal = Math.ceil(pfWeight - gWeight - adjm);