为什么3*0.03==0.09为true,而3*0.1==0.3却为false呢?这两个式子不是类似的吗?
登陆购买课程后可参与讨论,去登陆吧
同学你好,这里是因为结果中包含浮点数导致的,浮点数在表达式的运算中会有精度问题。
同学可以用打印语句分别对两次计算的结果进行打印,就会看出结果的不同。
如果同学对浮点数精度有兴趣,可以查询一下“Java 浮点数”关键词,会有详细的介绍。
祝学习愉快~
3*0.03==0.09那这个不也是浮点数的计算吗?为什么是true啊?网上查过了,都解释的不是很清楚,3*0.1==0.3的结果为false,网上有解释,我大概能看懂,但是3*0.03==0.09为啥是true呢?如果因为浮点数的精度问题,那这不也应该是false吗?
同学你好,并不是所有的数字达到一定的精度都会发生精度丢失,只是可能会发生精度丢失。同学可以查看《
浮点型数据教辅》http://file1.mukewang.com/view/3182d2648d780f0cf2fcf68e42a6cdc5/6396b8cb524512bf1a66a721258fbf0b.html?auth_key=1655691429-Tr9B-0-663002106c6d94c38aa22f3036219ecc
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
79 1
56 1
9 1
14 1
56 9
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星