搜索
编程论坛
→
.NET专区
→
『 C# 论坛 』
→ 请教一个简单的问题
标题:
请教一个简单的问题
取消只看楼主
hainandgm
等 级:
侠之大者
威 望:
3
帖 子:111
专家分:475
注 册:2007-6-21
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:3
请教一个简单的问题
各位好,请教一个问题:
double d = 1001389.58 + 123456.78;
d=?,为什么?请详解,谢谢!
搜索更多相关主题的帖子:
double
2010-12-23 18:01
hainandgm
等 级:
侠之大者
威 望:
3
帖 子:111
专家分:475
注 册:2007-6-21
第
2
楼
得分:0
非常感谢楼上的回答,如果在"Console.WriteLine(d);"设一个断点,你再看看局部变量窗中d的值是多少,或者把d值与1124846.36做个比较,看看结果是否为真?
2010-12-23 20:20
hainandgm
等 级:
侠之大者
威 望:
3
帖 子:111
专家分:475
注 册:2007-6-21
第
3
楼
得分:0
到现在我也不是很清楚,应该是double类型的原因吧.
由于它的取值范围大,但是它存在精度损失,因此使用double类型的算数运算和赋值运算的结果在不同的平台上可能稍微不同.
所以在PC项目或MCU项目中我尽可能避免使用double类型,用int/long类型或decimal类型来替换运算.
我希望在这里能得到更好的理解,谢谢各位.
2010-12-24 09:14
hainandgm
等 级:
侠之大者
威 望:
3
帖 子:111
专家分:475
注 册:2007-6-21
第
4
楼
得分:0
我之前没有发现过这种情况,最近在算数运算中发现的,后来采用了其它方式解决了问题,可我还是想在这里得到一些理解,谢谢!
2010-12-24 10:11
4
1/1页
1
参与讨论请移步原网站贴子:
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