C# 保留小数位数的方法

本文详细介绍了在C#中使用Math.Round(),Decimal.Round(),ToString()和String.Format()方法进行小数位数保留和四舍五入的示例,以及如何通过NumberFormatInfo实现符合中国习惯的四舍五入。
摘要由CSDN通过智能技术生成

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

  1. 使用 Math.Round() 方法
    说明:
  1. 其实使用 Math.Round() 方法,是根据国际标准(五舍六入)的方式进行取舍的。
  2. 进1的情况有两种:1)保留小数位后面第1位大于等于6;2)保留小数位后面第1位等于5,则第2位必须大于0。
    double double1_1 = Math.Round(1.545, 0); //2.0
    double double1_2 = Math.Round(1.545, 1); //1.5
    double double1_3 = Math.Round(1.545, 2); //1.54
    double double1_4 = Math.Round(1.5451, 2); //1.55
    double double1_5 = Math.Round(1.546, 2); //1.55
  1. 使用 Decimal.Round() 方法
    说明:小数取舍与 Math.Round() 方法相同。
    decimal decimal2_1 = decimal.Round(1.545m, 0); //2M
    decimal decimal2_2 = decimal.Round(1.545m, 1); //1.5M
    decimal decimal2_3 = decimal.Round(1.545m, 2); //1.54M
    decimal decimal2_4 = decimal.Round(1.5451m, 2); //1.55M
    decimal decimal2_5 = decimal.Round(1.546m, 2); //1.55M
  2. 使用 ToString() + NumberFormatInfo
    说明:标准的四舍五入法,更适合中国人的习惯哦。
    NumberFormatInfo nfi3_1 = new NumberFormatInfo();
    nfi3_1.NumberDecimalDigits = 0;
    string str3_1 = 1.545d.ToString(“N”, nfi3_1); //“2”
    nfi3_1.NumberDecimalDigits = 1;
    string str3_2 = 1.545d.ToString(“N”, nfi3_1); //“1.5”
    nfi3_1.NumberDecimalDigits = 2;
    string str3_3 = 1.545d.ToString(“N”, nfi3_1); //“1.55”
    nfi3_1.NumberDecimalDigits = 2;
    string str3_4 = 1.5451d.ToString(“N”, nfi3_1); //“1.55”
    nfi3_1.NumberDecimalDigits = 2;
    string str3_5 = 1.546d.ToString(“N”, nfi3_1); //“1.55”
  3. 使用 ToString() + 格式化字符
    说明:标准的四舍五入法,更适合中国人的习惯哦。
    string str4_1_1 = 1.545d.ToString(“N0”); //“2”
    string str4_1_2 = 1.545d.ToString(“N1”); //“1.5”
    string str4_1_3 = 1.545d.ToString(“N2”); //“1.55”
    string str4_1_4 = 1.5451d.ToString(“N2”); //“1.55”
    string str4_1_5 = 1.546d.ToString(“N2”); //“1.55”
    //ToString() 的简单方法
    string str4_2_6 = 1.545d.ToString(“0”); //“2”
    string str4_2_7 = 1.545d.ToString(“0.0”); //“1.5”
    string str4_2_8 = 1.545d.ToString(“0.00”); //“1.55”
    string str4_2_9 = 1.5451d.ToString(“0.00”); //“1.55”
    string str4_2_10 = 1.546d.ToString(“0.00”); //“1.55”
  4. 使用 String.Format() 方法
    说明:标准的四舍五入法,更适合中国人的习惯哦。
    string str5_1 = string.Format(“{0:N0}”, 1.545d); //“2”
    string str5_2 = string.Format(“{0:N1}”, 1.545d); //“1.5”
    string str5_3 = string.Format(“{0:N2}”, 1.545d); //“1.55”
    string str5_4 = string.Format(“{0:N2}”, 1.5451d); //“1.55”
    string str5_5 = string.Format(“{0:N2}”, 1.546d); //“1.55”
  5. 将数字转为“%”百分号字符串
    string str6_1 = 0.545d.ToString(“P”, new NumberFormatInfo
    {
    PercentDecimalDigits = 2, //转换后小数保留的位数,默认为2
    PercentPositivePattern = 1 //%号出现的位置:1 数字后面,2 数字前面,默认为0
    }); //“54.50%”
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值