在JS中, 无论整数还是小数都是Number类型, 它的实现遵循IEEE 754, 是标准的Double双精度浮点数, 使用固定的64位来表示。
看到这里你可能就不想看下去了。...同时, 我们都知道, 整数十进制转二进制时, 是除以二去余数, 这是可以除尽的!...但我们可能不知道的是, 小数十进制转化为二进制的计算方法是, 小数部分*2, 取整数部分, 直至小数部分为0, 如果永远不为零, 在超过精度时的最后一位时0舍入1。...阅读完上面一节, 对小数的乘法我们也可以有一些自己的猜测了。
0.57这个数值在存储时, 本身的精度不是很准确, 我们用toPrecision这个方法可以获取小数的精度。...而此时, 路总问了我一个问题, 为什么0.57 * 1000 === 570 而不是 569.99999..., 不求甚解的我只能先回答"应该是精度丢失吧"
然而, 我"小小的眼睛里充满了大大的疑惑".