Math.Round中国式四舍五入操作实录

当我们在使用**Math.Round()**时我们会发现,他并不是我们传统意义上理解的四舍五入,具体的体现是四舍六入,但也不完全是四舍六入。
当前一位为奇数时为我们所理解的四舍五入
当前一位为偶数时为我们所理解的四舍六入

   Math.Round(1.5) //2
   Math.Round(2.5) //2

那么我们如何去实现我们想要的四舍五入?
那我们就用使用到Round重载中的另一个方法中的函数
MidpointRounding
MidpointRounding.ToEven //国际的四舍五入,如上所述
MidpointRounding.AwayFromZero //我们传统意义上的四舍五入

所以我们在运用是加上MidpointRounding.AwayFromZero,也就实现了我们想要达到的效果

Math.Round(1.5,MidpointRounding.AwayFromZero) //2
Math.Round(2.5,MidpointRounding.AwayFromZero) //3

当我们需要保留多个小数位时依旧可以采用此方法

Math.Round(1.455,2,MidpointRounding.AwayFromZero) //1.46
Math.Round(2.445,2,MidpointRounding.AwayFromZero) //1.44

那么此时我们会发现,他又回到了四舍六入,那么这是为什么呢?
后来发现,他是由于精度造成的

Math.Round((decimal)1.455,2,MidpointRounding.AwayFromZero) //1.46
Math.Round((decimal)2.445,2,MidpointRounding.AwayFromZero) //1.45

至此,目标达成

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值