打印

double与float问题

[复制链接]
1144|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

粉丝