微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

-= 0.1奇异结果[重复]

如何解决-= 0.1奇异结果[重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

您正在看到计算机进行浮点运算的方式的伪像。参见例如http://en.wikipedia.org/wiki/Floating_point#Machine_precision     ,这样可以解决你的问题 http://jsfiddle.net/AVPNx/
var n = 1;
while ( n > 0 ){
    n -= 0.1;
    result = n.toFixed(1);
    document.body.innerHTML += result + \"<br/>\";
}
    ,从浮点指南:   为什么我的数字(例如0.1 + 0.2)加起来是一个不错的0.3轮,并且   相反,我得到一个奇怪的结果   0.30000000000000004?      因为在内部,计算机使用   格式(二进制浮点数)   无法准确表示数字   像是0.1、0.2或0.3      当代码被编译或   解释,您的“ 0.1”已经   四舍五入到最接近的数字   格式,导致   舍入误差甚至在   计算发生。     ,您正在处理一个浮点数。查看toFixed和toPrecision方法。     ,即使数字具有十进制表示法的简单表示,也不是所有数字都可以准确表示。这是因为JavaScript使用IEEE 754表示浮点值,因此使用基数2而不是基数10。这使您实际上并未减去0.1(即使您的源代码是这样),但实际上却减去了0.1。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。