当我添加两个文本框值1.001和0.001然后我做一个parseFloat
我得到1.0019999999。我想要它1.002。你能帮助我吗?
Aarti Jain
问问题
18035 次
5 回答
27
Javascript Number类有一个toFixed()
函数可以让你得到你想要的。
所以你可以这样做parseFloat("1.0019999").toFixed(3)
,这会给你1.002。
参数(本例中为 3)是小数点后显示的位数
于 2008-10-06T12:15:39.870 回答
10
0.002 不能准确地表示为以 2 为底的数字。类似于 1/3 不能以 10 为底表示的方式。
1/3 = 0.33333... 重复出现。要以 10 为基数准确表示数字,您需要无限多的十进制数字。
0.002 是一个可以精确地以 10 为底的数字(正如我们在此处看到的),但不能以计算机使用的以 2 为底。为了准确地表示这个数字,需要无限个二进制数字。
于 2008-10-06T11:21:21.790 回答
6
javascript 方法Number.toFixed()
和Number.toPrecision()
可以在这里提供帮助,但它们返回一个String
. 一个可能的解决方案如下:
var x = parseFloat(parseFloat("1.0019999999").toPrecision(3));
于 2012-07-09T17:16:00.353 回答
0
如果你想快速修复,你可以四舍五入到最接近的千分之一
数学.round((1.001+0.001)*1000)/1000
于 2008-10-06T11:23:45.013 回答