当我添加两个文本框值为1.001和0.001然后我做了parseFloat
我得到1.0019999999.我想要它1.002.你能帮助我吗?
Javascript 号码类有一个toFixed()
函数可以满足你的需要.
所以你可以做parseFloat("1.0019999").toFixed(3)
,这会给你 1.002.
参数(本例中为3)是小数点后显示的位数
0.002无法准确表示为基数2.类似于1/3不能在基数10中表示的方式.
1/3 = 0.33333 ...回归.要在基数10中准确表示数字,您需要无限数量的十进制数字.
0.002是一个可以在基数10中准确表示的数字(如我们在这里看到的),但不是在计算机使用的基数2中.为了准确地表示这个数字,将采用无限数量的二进制数字.
这是一个已知问题:看准确性问题 和精度问题的最小化:最小化
JavaScript的方法Number.toFixed()
和Number.toPrecision()
可以帮助在这里,但他们返回String
.可能的解决方案如下:
var x = parseFloat(parseFloat("1.0019999999").toPrecision(3));