出了什么样的错误? 我该如何解决这个问题?
1.1 - 1 = 0.10000000000000009
1.0000001 + 1 = 2.0000001000000003
答案 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
的整数
精确,但小数部分很少。鉴于此,算术尽可能精确,但不多。如果真实结果和所有中间体都是该范围内的整数,则对整数的运算是精确的。
特别是,通常不应对非整数结果进行相等性比较,非整数计算结果通常需要舍入。