JS如何解释n个小数点的数字

时间:2018-04-30 15:25:15

标签: javascript

我今天遇到了一些代码:

console.log(Math.ceil(3.000000000000001))
--> 4
console.log(Math.ceil(3.0000000000000001))
--> 3

JS解释器发生了什么?遵循什么规则,以便1得到"修剪"在第二个Math.ceil

我不想要的是一系列浮点运算的链接......但具体是由JS解释的。

1 个答案:

答案 0 :(得分:3)

Javascript浮点数具有51位尾数,允许16位十进制数字的精度。 3.000000000000001有16位数字,因此分数可以包含在浮点值中,然后Math.ceil()将其四舍五入到43.0000000000000001有17个数字,因此该分数不适合,并且在阅读时会四舍五入到3.0,因此Math.ceil()会返回3.0