2016-05-09 119 views
0

我得到了奇怪的结果,当我乘1.09和12 其实13.080000000000002,而不是13.08! 这是什么原因造成的? ND如何解决乘返回一个奇怪的结果

的console.log(1.09 * 12);

问候。

+0

怎么可以有这么多的程序员不学习浮点运算的基本知识? – duffymo

回答

0

至于解释here

在JavaScript所有的数字都是IEEE 754浮点数。由于其编码的二进制性质,一些十进制数不能以完美的精度表示。这与小数1/3如何不能用具有有限位数的十进制数精确表示是不一致的。一旦达到存储的极限,您需要将最后一位数字向上或向下舍入。