C# 小数点后保留两位小数

C# 小数点后保留两位小数,四舍五入的函数及使用方法

1 Math.Round(45.367,2)     //Returns   45.37
2 Math.Round(45.365,2)     //Returns   45.36

C#中的Round()不是我们中国人理解的四舍五入,是老外的四舍五入,是符合IEEE标准的四舍五入,具体是四舍六入,下面的才是符合中国人理解的四舍五入

1 Math.Round(45.367,2,MidpointRounding.AwayFromZero);     //Returns   45.37
 2 Math.Round(45.365,2,MidpointRounding.AwayFromZero);     //Returns   45.37   

备注:根据网友在留言板反馈,传入的参数如果是double类型的,其实得到的结果还是不会四舍五入(double精度不够导致的)
所以上面的更严谨的写法应该是:将传入的参数默认转换为decimal类型,确保其在四舍五入之前精度不会降下来。因为decimal精度高于double

最终版:

1 Math.Round(Convert.ToDecimal(45.367),2,MidpointRounding.AwayFromZero);     //Returns   45.37
 2 Math.Round(Convert.ToDecimal(45.365),2,MidpointRounding.AwayFromZero);     //Returns   45.37   
### C# 中使用 `Math.Round` 方法保留小数点两位C# 编程语言中,可以通过调用 `Math.Round` 方法来实现数值的小数点两位保留功能。此方法支持多种重载形式以满足不同场景下的需求[^1]。 以下是具体实现的一个示例: ```csharp using System; class Program { static void Main() { double number = 123.456789; // 使用 Math.Round 将数值四舍五入到小数点两位 double roundedNumber = Math.Round(number, 2); Console.WriteLine($"原始值: {number}"); Console.WriteLine($"保留两位小数后的值: {roundedNumber}"); } } ``` 上述代码展示了如何利用 `Math.Round(double value, int digits)` 这一特定重载版本将给定数值精确至小数点两位。其中第二个参数指定了要保留小数数,在这里是 `2` 表示保留两位小数。 此外,当涉及到更复杂的舍入选项时,可以引入第三个可选参数——枚举类型 `MidpointRounding` 来控制具体的舍入行为。例如,默认情况下会采用所谓的“银行家舍入法”,即向最近偶数方向舍入;如果希望改变这种默认模式,则可通过设置 `MidpointRounding.AwayFromZero` 实现传统意义上的向上舍入逻辑[^2]。 下面是一个包含自定义舍入规则的例子: ```csharp using System; class Program { static void Main() { decimal number = 123.455m; // 默认情况 (ToEven): 舍入到最邻近的偶数 decimal defaultRound = Math.Round(number, 2, MidpointRounding.ToEven); // AwayFromZero: 始终远离零的方向进行舍入 decimal awayFromZeroRound = Math.Round(number, 2, MidpointRounding.AwayFromZero); Console.WriteLine($"Default rounding result: {defaultRound}"); Console.WriteLine($"Away from zero rounding result: {awayFromZeroRound}"); } } ``` 值得注意的是,除了基于四舍五入的方式外,还有其他手段能够达到截断而非真正意义上舍入的效果。比如借助于简单的乘除运算配合强制类型转换即可完成类似目标,不过这种方法并不推荐因为它忽略了可能存在的精度损失风险[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值