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

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

[复制链接]
楼主
发表于 2013-9-13 13:40:59 | 显示全部楼层
magic 发表于 2012-10-13 21:11
这个原因是当代计算机的浮点计算的时候所有的浮点数都是约数,不存在完全正确的浮点数,这个不光在c语言中存 ...

虽然是很久之前的帖子了,但还是回复一下吧

首先假设浮点数执行的是IEEE-754标准
有些浮点数是完全精确的,例如 1.0 2.5 3.25
另外Java和C#在标准库中都有decimal类型,和一般的精确到n位的实数是一样的
7.77 == 7.77也是正确的
但是
double a
a == 7.77
就是错误的了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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