标题:请教一个简单的问题
取消只看楼主
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
结帖率:100%
已结贴  问题点数:20 回复次数:3 
请教一个简单的问题
各位好,请教一个问题:
double d = 1001389.58 + 123456.78;
d=?,为什么?请详解,谢谢!
搜索更多相关主题的帖子: double 
2010-12-23 18:01
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:0 
非常感谢楼上的回答,如果在"Console.WriteLine(d);"设一个断点,你再看看局部变量窗中d的值是多少,或者把d值与1124846.36做个比较,看看结果是否为真?
2010-12-23 20:20
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:0 
到现在我也不是很清楚,应该是double类型的原因吧.
由于它的取值范围大,但是它存在精度损失,因此使用double类型的算数运算和赋值运算的结果在不同的平台上可能稍微不同.
所以在PC项目或MCU项目中我尽可能避免使用double类型,用int/long类型或decimal类型来替换运算.

我希望在这里能得到更好的理解,谢谢各位.
2010-12-24 09:14
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:0 
我之前没有发现过这种情况,最近在算数运算中发现的,后来采用了其它方式解决了问题,可我还是想在这里得到一些理解,谢谢!
2010-12-24 10:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329720-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092435 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved