gpt4 book ai didi

c# - 如何将 102.555 舍入为 102.55?

转载 作者:行者123 更新时间:2023-12-03 20:38:02 25 4
gpt4 key购买 nike

我正在测试一个为产品提供 10% 折扣的系统,这意味着 102.555 折扣,但系统只使用 2 个小数位,因此它给出了 102.55强>.

问题是如果我执行这个:

Math.Round(102.555, 2, MidpointRounding.AwayFromZero)

输出为:102.56

如果我执行这个:

Math.Round(102.555, 2, MidpointRounding.ToEven)

输出也是 102.56。

我在所有场景中都使用 Math.Round 方法,直到出现这个问题。我做错了什么?

为什么 102.555 使用 MidpointRounding.AwayFromZero 返回 102.56?

我怎样才能从 102.555 返回 102.55?

最佳答案

Why is 102.555 returning 102.556 with MidpointRounding.AwayFromZero?

我认为“102.556”在这里应该读作“102.56”。

因为MidpointRounding指示当您对数字进行四舍五入时会发生什么情况,其中基数 10 处的四舍五入有效数字(即最后消失的数字)是 5。您的数字102.555就是这种情况,因此当四舍五入到小数点后两位时,有两个选项:

  • 102.55
  • 102.56

MidpointRounding.AwayFromZero 选择距离零较远的选项 - 在本例中(因为这些是正数)是较大的一个,即 102.56

关于c# - 如何将 102.555 舍入为 102.55?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41702421/

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