-1

什么样的错误?我该如何解决?

1.1 - 1 = 0.10000000000000009

1.0000001+1 = 2.0000001000000003

4

3 回答 3

3

你可以通过使用.toFixed()方法来解决这个问题,
它的浮点问题看看这里

例如:

<script>
alert((1.234567890).toFixed(2))
</script>
于 2013-11-07T02:57:27.643 回答
0

javascript 使用数据类型float。浮点数永远不会精确,因此在比较数据时不要使用 ==,而是使用 < 和/或 >。

于 2013-11-07T02:58:35.900 回答
0

comp.lang.javascript 常见问题解答(目前似乎已关闭):

ECMAScript 数字以二进制表示为 IEEE-754 (IEC 559) Doubles,分辨率为 53 位,精度为 15-16 位十进制数字;刚好超过的整数9e15是精确的,但很少有小数部分是精确的。鉴于此,算术尽可能精确,但仅此而已。如果真实结果和所有中间值都是该范围内的整数,则对整数的运算是精确的。

特别是,通常不应比较非整数结果是否相等,并且非整数计算结果通常需要舍入。

于 2013-11-07T03:00:37.300 回答