在Javascript中:1.1 - 1 = 0.10000000000000009

时间:2013-11-07 02:53:09

标签: javascript floating-point-precision

出了什么样的错误? 我该如何解决这个问题?

1.1 - 1 = 0.10000000000000009

1.0000001 + 1 = 2.0000001000000003

3 个答案:

答案 0 :(得分:2)

您可以使用.toFixed()方法解决此问题 它的浮点问题take a look here

例如:

<script>
alert((1.234567890).toFixed(2))
</script>

答案 1 :(得分:0)

javascript使用数据类型float。浮点数永远不会精确,所以不要在比较数据时使用==而是使用&lt;和/或&gt;。

答案 2 :(得分:0)

来自comp.lang.javascript FAQ(目前似乎已经失败):

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

特别是,通常不应对非整数结果进行相等性比较,非整数计算结果通常需要舍入。