document.writeln(Math.floor(43.9));
在浏览器中产生43个。
document.writeln(Math.floor(43.9999));
产生43
document.writeln(Math.floor(43.999999999999));
再次43
然而,
document.writeln(Math.floor(43.99999999999999));
产生44。
小数点后的9的魔数(Magic Number)似乎为15 *。
为什么是这样?
此外,Math.floor函数是否接受数字作为数字对象或数字值?
最佳答案
IEEE 754 double 二进制浮点格式(JavaScript在其Number类型中使用的格式)可为您提供15-17个有效十进制数字的精度。
资料来源:http://en.wikipedia.org/wiki/Double-precision_floating-point_format#IEEE_754_double-precision_binary_floating-point_format:_binary64
关于Javascript Math.floor函数失误还是实现谜团?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11958279/