C# 四舍五入 以及 保留小数位的方法

C#中的Math.Round()并不是使用的"四舍五入"法。
其实C#的Round函数都是采用Banker’s rounding(银行家算法),即:四舍六入五取偶

Math.Round(0.4) //result:0

Math.Round(0.6) //result:1

Math.Round(0.5) //result:0

Math.Round(1.5) //result:2

Math.Round(2.5) //result:2

使用MidpointRounding.AwayFromZero的效果:

Math.Round(0.4, MidpointRounding.AwayFromZero); // result:0

Math.Round(0.6, MidpointRounding.AwayFromZero); // result:1

Math.Round(0.5, MidpointRounding.AwayFromZero); // result:1

Math.Round(1.5, MidpointRounding.AwayFromZero); // result:2

Math.Round(2.5, MidpointRounding.AwayFromZero); // result:3

保留后俩位小数点要用到另一个重载方法

Math.Round((decimal)22.325, 2,MidpointRounding.AwayFromZero)//result : 22.33

C# 实现保留两位小数的方法

1、Math.Round(0.333, 2);//按照四舍五入的国际标准

2double dbdata = 0.335; string str1 = String.Format("{0:F}", dbdata);//默认为保留两位

3decimal.Round(decimal.Parse("0.3453"), 2)

4、Convert.ToDecimal("0.3333").ToString("0.00");

C#保留小数点后几位

String.Format("{0:N1}", a) 保留小数点后一位

String.Format("{0:N2}", a) 保留小数点后两位

String.Format("{0:N3}", a) 保留小数点后三位

C#保留小数位N位四舍五入

double s=0.55555;   

result=s.ToString("#0.00");//点后面几个0就保留几位 

C#保留小数位N位四舍五入

double dbdata = 0.55555;   

string str1 = dbdata.ToString("f2");//fN 保留N位,四舍五入

版权声明:本文为qq_40985921原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。