为什么 javascript 中 0.1 + 0.2 !== 0.3 为 True
PHP中文网
PHP中文网 2017-04-10 12:43:19
[JavaScript讨论组]

惊闻 0.1 + 0.2 !== 0.3,赶忙计算得验证,发现,0.1 加 0.2 等于 0.30000000000000004

0.1 + 0.2 == 0.30000000000000004 返回 True

谁能给我解释下为什么,javascript这是要闹哪样啊。。。

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
阿神

因为计算机是二进制来表示浮点数的,无法准确表示一个浮点数,只能逼近。所以0.1+0.2并不是精确的等于0.3,不仅禁是javascript这样,这不是语言的问题。
你要判断两个浮点数是否相等,还是建议用逼近的比较,比如

if(fabs(a-b) < 1E-10)
   ;//we think a is equals to b.
PHP中文网

话说当你知道计算机只认识0和1时,你就应该知道0.1在计算机里面是不可能精确保存的的。

阿神

我有个疑问就是为什么除了0.1+0.2===0.3 为false外,其他的都是true呢 如0.4+0.2===0.6等等

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号