gpt4 book ai didi

c# - 如何使用 NET Math.Round(,,MidpointRounding.AwayFromZero) 正确舍入

转载 作者:行者123 更新时间:2023-11-30 20:35:24 25 4
gpt4 key购买 nike

在 .NET 中,为什么 System.Math.Round(27.2351, 2, MidpointRounding.AwayFromZero) 产生 27.24 而不是 27.23

第三个数字是 5 所以我们检查第 4 个数字是否比 5 小 1 所以结果应该是 27.23

有什么办法可以得到这个结果。

查看我的问题:

我的金额为 2013.86,税率为 7%。现在 2013.86 的 7% = 140.97

但是这个2013.86是我的总量。

详细情况是这样的:

Amount     Tax     Tax Value in 2 decimals by Math.Round718.37      7%      50.29496.06      7%      34.72384.70      7%      26.93310.93      7%      21.77103.80      7%      7.27----------------------------2013.86             140.98

总税额为 140.97,但个人税为 140.98 :( :(如何将总税额与单项税额的总和相匹配。

任何建议

最佳答案

您对舍入的理解不正确。 27.2351 比 27.23 更接近 27.24,因此无论任何中点舍入选项如何,将 27.2351 舍入到小数点后 2 位将总是产生 27.24。

中点舍入选项仅在数字恰好在两个选项之间时才起作用,即在您的情况下为 27.2350000。考虑数轴:

                                        /--What to do at this exact point?                                        |  It's not "closer" to either side!                                        |                                        v.............round to 27.230............|...........round to 27.240............<~---------------------------------------------------------------------------~>      |                                 |                                 |    27.230                            27.235                            27.240

至于您在编辑中遇到的行为,这是正常的。四舍五入的数字之和并不总是与先对数字求和然后四舍五入的结果相同。您需要仔细阅读您的特定司法管辖区应如何计算税款,然后按照该内容进行操作。

关于c# - 如何使用 NET Math.Round(<decimal>,<int>,MidpointRounding.AwayFromZero) 正确舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com