gpt4 book ai didi

c# - 为什么 MidpointRounding.AwayFromZero 和 MidpointRounding.ToEven 做同样的事情?

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:12 27 4
gpt4 key购买 nike

我遇到了一个相当烦人的问题。

假设我有小数 2.5,我希望它四舍五入。我的所有研究都告诉我:

Math.Round(2.5, 0, MidpointRounding.AwayFromZero)

会给我想要的结果。

然而,当准确地尝试这段代码时,它返回 2,而不是它应该返回的 3。它甚至在一个空白的控制台应用程序中执行此操作,因为我不确定是否有其他东西会干扰它。

我是不是误会了什么?基本上我只希望我给它的数字始终四舍五入。

最佳答案

您在评论中提到您想要将 int 转换为其值的一半,始终四舍五入

假设 int 为正数,最有效的方法就是:

int result = (value+1)/2;

如果您需要处理正值和负值,

int result = (value+Math.Sign(x))/2;

关于c# - 为什么 MidpointRounding.AwayFromZero 和 MidpointRounding.ToEven 做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858540/

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