为什么声明5*1.015不返回5.075?

Era*_*dan 0 javascript

可能重复:
JavaScript的数学是否被破坏?

它回来了

5.074999999999999
Run Code Online (Sandbox Code Playgroud)

这是为什么?

还有什么其他数字会给出类似的证明呢?

Mat*_*nes 6

浮点运算的基本解读.

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

简而言之:

将无限多个实数压缩成有限数量的比特需要近似表示.尽管存在无限多个整数,但在大多数程序中,整数计算的结果可以以32位存储.相反,给定任何固定数量的位,大多数具有实数的计算将产生无法使用那么多位精确表示的量.因此,浮点计算的结果通常必须舍入,以便适应其有限表示.该舍入误差是浮点计算的特征.