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

本文详细介绍了C#中Math.Round()函数的银行家算法及其MidpointRounding.AwayFromZero选项,展示了如何精确控制小数点后位数的四舍五入规则,并提供了多种格式化数字和保留小数位数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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位,四舍五入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值