首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小数位的“四舍五入”解决思路

2012-12-24 
小数位的“四舍五入”有一个小数:doubletest 16.9877845897513902如何使“test”只有一位小数,数值四舍五入,

小数位的“四舍五入”
有一个小数:  
     double  test = 16.9877845897513902

     如何使“test”只有一位小数,数值四舍五入,依然为“double”类型???
[解决办法]
参考
c# 四舍五入、上取整、下取整
[解决办法]
写一个方法,传入数值,返回Double...
[解决办法]
double test = 16.9877845897513902;
string s = test.ToString("0.0");
test = Convert.ToSingle(s);
[解决办法]
.Net有四舍五入的api,

double dbResult=Math.Round(test,1);
[解决办法]
如果要自己写也很简单:

double dbResult=((int)(test*10.0+0.5))/10.0;
[解决办法]
 double test = 16.9877845897513902;
        test = Convert.ToDouble(test.ToString("f2"));
[解决办法]
double test = 16.9877845897513902;
string s = test.ToString("0.0");
test = Convert.ToSingle(s);
---------------------------
一个 Math.round 就能搞定的问题,居然被你写成这种天怒人怨的代码
[解决办法]
Math.Round()是「四舍六入五凑偶」,不是「四舍五入」。科学计算中很常用。

MSDN解释:

引用
最接近 a 的整数。如果 a 为两个整数的中值,这两个整数一个为偶数,另一个为奇数,则返回偶数。 

此方法的行为遵循 IEEE 标准 754 的第 4 节。这种舍入有时称为就近舍入或银行家舍入。

热点排行