double与float问题

[复制链接]
1829|2
 楼主| txcy 发表于 2012-3-5 18:06 | 显示全部楼层 |阅读模式
double dX,dY;
dX = 113.50000 ;
dY = 22.20000;

dx:113.50000000000000
dy:22.199999999999999


红色部分是在调试器窗口中看到的值,为什么22.20000会自动转换成22.199999999999999,

而22.20000却没有类似的转换呢?

请详细说一下float和double的不同
无冕之王 发表于 2012-3-5 18:19 | 显示全部楼层
在误差的允许范围内。。。有误差的
pkat 发表于 2012-3-5 21:48 | 显示全部楼层
这个是double和float的自身问题,他们对精度的处理不是很严肃,比如:double a(3.0),b(3.00),有时候你判断a和b是否相等的时候还可以能不一样,因此不要使用浮点数类型的数来做比较,因此可见,其对精度的处理是有问题的!不一定都会转换,但是这是一个存在的问题!建议使用BigDecimal,这个对精度的处理很高!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部