首页 新闻 会员 周边 捐助

数据类型精度问题

0
[已关闭问题]
<P>先看代码:</P> <P>&nbsp;private static void decimal_Type()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimal var1 = 100m;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimal var2 = 0.99999999999999999999999999m;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float var3 = 0.9999999f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double var4 = 0.999999999999999d;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(var1+var2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(var3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#ff0000>Console.WriteLine(var4+(double)var2);</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(var1.GetType());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P>调试的时候Immediate Window中调试var4+(double)var2的值为:1.9999999999999991</P> <P>然而Dos窗口(控制台窗口)却是2.这下偶就晕啦.:(</P>
问题补充: 怎么会有这么大的出入呢?
huangzheng的主页 huangzheng | 菜鸟二级 | 园豆:205
提问于:2008-02-02 17:50
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册