• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中Math.Round()实现中国式四舍五入

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  var s = Math.Round(112.665, 2); 计算出来s=112.66;

  C#中的Math.Round()并不是使用的"四舍五入"法。

  其实在VB、VBScript、C#、J#、T-SQL中Round函数都是采用Banker's rounding(银行家算法),即:四舍六入五取偶。事实上这也是IEEE的规范,因此所有符合IEEE标准的语言都应该采用这样的算法。

  .NET 2.0 开始,Math.Round 方法提供了一个枚举选项 MidpointRounding.AwayFromZero 可以用来实现传统意义上的"四舍五入"。

  即: Math.Round(112.665, MidpointRounding.AwayFromZero) = 112.67

  decimal Round(decimal d, int decimals, MidpointRounding mode)

  这样计算出来的小数才是真正的中国式四舍五入!!

  

Math.Round(846.405, 2); 
846.4

Math.Round(846.405, 2 ,MidpointRounding.AwayFromZero)
846.41

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
学习:C#中的空值的判断(转)发布时间:2022-07-13
下一篇:
【转载】:C#语言发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap