Javascript负浮点数计算

时间:2013-01-29 08:56:33

标签: javascript math

  

可能重复:
  Is JavaScript’s Floating-Point Math Broken?

在Javascript中,如何计算23668-23671.88-3.88而不是-3.8800000000010186的结果?

我不想要任何舍入,因为如果我使用windows calc,结果是-3.88。

有可能吗?

2 个答案:

答案 0 :(得分:3)

如果您不想舍入,则需要某种方法来确定表达式中变量的精度,并将该精度应用于表达式的结果。不幸的是,JavaScript没有办法确定浮点数的精度。

然而,有一种简单的'hacky'方式可以实现这一目标:

http://jsfiddle.net/SjxCY/2/

var num = 2.383;
var precision = (num+'').split('.')[1].length;
var final = (234234-num).toFixed(precision);
alert(final);

它不漂亮,但它有效。

答案 1 :(得分:2)

如果你不想要一个圆形的kludge,你不能使用浮点数,而且必须找到a decimal arithmetic library.没有任何内置的东西,恐怕。