javascript乘数8.9 * 3的奇怪行为[重复]

问题描述 投票:0回答:1

对于在chrome,firefox上测试过的这种奇怪行为是否有任何解释,即当您执行8.9 * 3时,您将获得26.700000000000003

console.log(8.9 * 3);

有帮助吗?

javascript behavior
1个回答
0
投票

您已经发现了在计算机中进行实数数学的“乐趣”。

JavaScript使用64位IEEE-754数字;这留下了64位来表示它知道的所有可能的实数。

它们被表示为我们所谓的“浮点数”,这仅表示计算机将特征(整数部分)和尾数(分数部分)存储在这64位中。小数点左边的整数部分很容易处理。尾数有点棘手,并且基本上以二进制形式存储为尾数。

不幸的是,这样的二进制分数不能总是以100%的精度表示十进制数...。您已经发现一种这样的情况。

© www.soinside.com 2019 - 2024. All rights reserved.