Ø 前言
本文主要介绍C#中实现小数位数的保留,完成对小数位数四舍五入的几种方法。
1. 使用Math.Round()方法
说明:
1) 其实使用Math.Round()方法,是根据国际标准(五舍六入)的方式进行取舍的。
2) 进1的情况有两种:1)保留小数位后面第1位大于等于6;2)保留小数位后面第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