为了账号安全,请及时绑定邮箱和手机立即绑定

为啥printf ("(9.95 * 100) = %d \n", (9.95 * 100));结果是994?

为啥printf ("(9.95 * 100) = %d \n", (9.95 * 100));结果是994?

慕少森 2019-04-13 08:37:17
结果994是怎么回事?printf("(9.95*100)=%d\n",(9.95*100));我的真实意思是想理解为什么是9.95*100的时候结果是994.而9.96,9.97,9.94,9.93均是正常的
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

浮点运算有精度损失,9.95*100算出来的结果应该是994.9999999999999,取整是截掉小数部分,就是994了。如果用四舍五入计算,就能得到995
printf("(9.95*100)=%d\n",round(9.95*100));
                            
查看完整回答
反对 回复 2019-04-13
?
FFIVE

TA贡献1797条经验 获得超6个赞

拿起任何一本技术书籍,看浮点数计算章节。
比如:PHP:Float浮点型-Manual
另外,可以研究一下以下什么差别
printf("(9.95*100)=%s\n",(9.95*100));
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号