gpt4 book ai didi

c# - 使用 Math.Round 的舍入问题

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

Module Module1
Public Sub Main()
Dim values() As Double = {43.523, 12.65, 43.565}
For Each value As Double In values
Console.WriteLine("{0} --> {1}", value, Math.Round(value, 2))
Next
Console.ReadLine()
End Sub
End Module

以上代码结果为

  • 43.523 --> 43.52

  • 12.65 --> 12.65

  • 43.565 --> 43.56

我需要 43.565 --> 43.57 而不是 43.565 --> 43.56。但我仍然需要其他 43.523 --> 43.52 和 12.65 --> 12.65 按原样四舍五入。

最佳答案

首先,如果您关心精确的十进制值,您应该考虑使用 Decimal 而不是 Double。特别是,43.565 不能完全表示为 Double 开头。

但是,如果您想指定“中点”的行为(即可以合理向上或向下舍入的位置),请使用 overload with a MidpointRounding parameter :

Console.WriteLine("{0} --> {1}", value, _
Math.Round(value, 2, MidpointRounding.AwayFromZero))

关于c# - 使用 Math.Round 的舍入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204342/

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