前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >四舍五入的坑

四舍五入的坑

原创
作者头像
谭广健
发布2023-02-03 17:53:29
7020
发布2023-02-03 17:53:29
举报
文章被收录于专栏:谭广健的专栏谭广健的专栏

话说,再做一个财务报表统计中,发现一个简单的乘法 3.00 * 0.045 =0.135,按照咱们的四写五入就是 0.14。但我用C# 写var Value = Math.Round(3.00 * 0.045, 2), 竟然是0.13.。。不是预期的0.14,怎么办好呢。。

后来查询得知,原来在Math.Round加入MidpointRounding.AwayFromZero即可。eg:var Value = Math.Round(3.00 * 0.045, 2,MidpointRounding.AwayFromZero),那为什么要加入MidpointRounding.AwayFromZero呢。。

原来MidpointRounding 是一个枚举,而AwayFromZero是一个策略。说人话就是告诉 Math.Round该按什么原则进行处理。

更详细的看,微软自己的解释吧。https://learn.microsoft.com/zh-cn/dotnet/api/system.midpointrounding?redirectedfrom=MSDN&view=net-7.0#code-try-2

当然有更偏门的处理,就是直接取小数后第3位,然后判断这个,不过麻烦咯,也容易出错。所以就在这里留字,供其他人参考。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档