2

可能的重复:
JavaScript 的浮点数学被破坏了吗?

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

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

可能吗?

4

2 回答 2

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);

它不漂亮,但它有效。

于 2013-01-29T09:08:02.073 回答
2

如果您不想要四舍五入,则不能使用浮点数,而必须找到十进制算术库。恐怕没有内置的东西。

于 2013-01-29T09:02:53.280 回答