C# 保留小数位数的方法

Ø 前言

本文主要介绍C#中实现小数位数的保留,完成对小数位数四舍五入的几种方法。

 

1.  使用Math.Round()方法

说明:

1)  其实使用Math.Round()方法,是根据国际标准(五舍六入)的方式进行取舍的。

2)  1的情况有两种:1)保留小数位后面第1位大于等于62)保留小数位后面第1位等于5,则第2位必须大于0

doubledouble1_1 =Math.Round(1.545, 0);           //2.0

doubledouble1_2 =Math.Round(1.545, 1);           //1.5

doubledouble1_3 =Math.Round(1.545, 2);           //1.54

doubledouble1_4 =Math.Round(1.5451, 2);          //1.55

doubledouble1_5 =Math.Round(1.546, 2);           //1.55

 

2.  使用Decimal.Round()方法

说明:小数取舍与Math.Round()方法相同。

decimaldecimal2_1 =decimal.Round(1.545m, 0);     //2M

decimaldecimal2_2 =decimal.Round(1.545m, 1);     //1.5M

decimaldecimal2_3 =decimal.Round(1.545m, 2);     //1.54M

decimaldecimal2_4 =decimal.Round(1.5451m, 2);    //1.55M

decimaldecimal2_5 =decimal.Round(1.546m, 2);     //1.55M

 

3.  使用ToString() + NumberFormatInfo

说明:标准的四舍五入法,更适合中国人的习惯哦。

NumberFormatInfonfi3_1 =newNumberFormatInfo();

nfi3_1.NumberDecimalDigits = 0;

stringstr3_1 = 1.545d.ToString("N", nfi3_1);      //"2"

nfi3_1.NumberDecimalDigits = 1;

stringstr3_2 = 1.545d.ToString("N", nfi3_1);      //"1.5"

nfi3_1.NumberDecimalDigits = 2;

stringstr3_3 = 1.545d.ToString("N", nfi3_1);      //"1.55"

nfi3_1.NumberDecimalDigits = 2;

stringstr3_4 = 1.5451d.ToString("N", nfi3_1);     //"1.55"

nfi3_1.NumberDecimalDigits = 2;

stringstr3_5 = 1.546d.ToString("N", nfi3_1);      //"1.55"

 

4.  使用ToString() +格式化字符

说明:标准的四舍五入法,更适合中国人的习惯哦。

stringstr4_1_1 = 1.545d.ToString("N0");           //"2"

stringstr4_1_2 = 1.545d.ToString("N1");           //"1.5"

stringstr4_1_3 = 1.545d.ToString("N2");           //"1.55"

stringstr4_1_4 = 1.5451d.ToString("N2");          //"1.55"

stringstr4_1_5 = 1.546d.ToString("N2");           //"1.55"

//ToString()的简单方法

stringstr4_2_6 = 1.545d.ToString("0");            //"2"

stringstr4_2_7 = 1.545d.ToString("0.0");          //"1.5"

stringstr4_2_8 = 1.545d.ToString("0.00");         //"1.55"

stringstr4_2_9 = 1.5451d.ToString("0.00");        //"1.55"

stringstr4_2_10 = 1.546d.ToString("0.00");        //"1.55"

 

5.  使用String.Format()方法

说明:标准的四舍五入法,更适合中国人的习惯哦。

stringstr5_1 =string.Format("{0:N0}", 1.545d);   //"2"

stringstr5_2 =string.Format("{0:N1}", 1.545d);   //"1.5"

stringstr5_3 =string.Format("{0:N2}", 1.545d);   //"1.55"

stringstr5_4 =string.Format("{0:N2}", 1.5451d);  //"1.55"

stringstr5_5 =string.Format("{0:N2}", 1.546d);   //"1.55"

 

6.  将数字转为“%”百分号字符串

stringstr6_1 = 0.545d.ToString("P",newNumberFormatInfo

{

    PercentDecimalDigits = 2,      //转换后小数保留的位数,默认为2

    PercentPositivePattern = 1     //%号出现的位置:1数字后面,2数字前面,默认为0

});//"54.50%"

转载于:https://www.cnblogs.com/abeam/p/8406054.html