搜索
查看: 2971|回复: 10
打印 上一主题 下一主题

float a=234.89; printf("%f",a);问为何输出234.889999

[复制链接]
楼主
发表于 2012-10-13 21:11:32 | 显示全部楼层
这个原因是当代计算机的浮点计算的时候所有的浮点数都是约数,不存在完全正确的浮点数,这个不光在c语言中存在这个问题,java,php,c#等等编程语言都无法解决,当你用到浮点数进行这种类型的计算的时候要注意
7.77==7.77,这个判断是错误的,应该使用7.77>7.77-0.000001&&7.77<7.77+0.000001具体的精度视情况而定。
现在计算机都是这样,这根浮点的定义有关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表