标题:C# Math.Round方法的问题,求大神指教
只看楼主
heibaochao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-29
结帖率:0
已结贴  问题点数:20 回复次数:3 
C# Math.Round方法的问题,求大神指教
目前在C#中的 Math.Round方法出现了一个问题
变量i计算出来的值=196.0627XXXXX
但是输出Math.Round(i,2)得到的结果却是196.07,这是为什么啊?
如果输出Math.Round(i,3)得到的结果是196.063,
输出Math.Round(196.0627XXXXX,2)得到的结果为196.06,

为什么后面2个Math.Round的值都是对的,而Math.Round(i,2)的值却不对?
求大神指点
2012-09-29 09:42
Eumenides_me
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:151
注 册:2012-9-26
得分:0 
你可以理解为编译器的问题或double类型在保存数据的时候并不完美
2012-09-29 11:27
heibaochao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-29
得分:0 
那要如何解决呢?

我用的Visual Studio 2005
winform中dataGridView组件
单元格的值i计算为196.0627XXXXXX
然后直接在单元格里Round(i,2)出来的就是196.07
要怎么样让它计算正确呢?


2012-09-29 11:43
Eumenides_me
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:151
注 册:2012-9-26
得分:20 
我是直接用csc.exe对其进行编译的,net framework v4.0.30319,C#我不是很了解,才开始学,原来在学习C语言的时候知道double类型在存储的时候并不能完美存储,这个没办法解决,编译器的版本不同,结果也会有点偏差,这个没办法改变。
2012-09-29 13:15



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




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

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