gpt4 book ai didi

x.95 的 C# Math.Round 问题

转载 作者:太空狗 更新时间:2023-10-30 00:14:12 30 4
gpt4 key购买 nike

刚遇到一个奇怪的问题:

Math.Round(113.065, 2, MidpointRounding.ToEven) => 113.06
Math.Round(113.075, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.085, 2, MidpointRounding.ToEven) => 113.08

但是……

Math.Round(113.095, 2, MidpointRounding.ToEven) => 113.1

为什么会这样?我希望我的结果是 113.09!这可能吗?

谢谢

最佳答案

Math.Round(113.095, 2, MidpointRounding.ToEven) => 113.1

那是偶数。用小数点后两位阅读:

113.10

10 是偶数部分。修剪后的右零只是让它看起来很奇怪(“奇数”在“不偶数”的意义上,不要混淆为“奇数”意思是“奇怪的”),但这就是它的原因正以这种方式显示。

此外,您问题中的示例不准确。这是这些的输出,这将进一步强化为什么您将 x.1 作为输出:

Math.Round(113.065, 2, MidpointRounding.ToEven) => 113.06
Math.Round(113.075, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.085, 2, MidpointRounding.ToEven) => 113.08

请注意,舍入 113.075 ToEven 的结果是 113.08,而不是 113.07

完整示例:

Math.Round(113.065, 2, MidpointRounding.ToEven) => 113.06
Math.Round(113.075, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.085, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.095, 2, MidpointRounding.ToEven) => 113.1

也可以理解为:

Math.Round(113.065, 2, MidpointRounding.ToEven) => 113.06
Math.Round(113.075, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.085, 2, MidpointRounding.ToEven) => 113.08
Math.Round(113.095, 2, MidpointRounding.ToEven) => 113.10

如果您问题中的输出确实是您想要得到的...(即如果那个真的是您想要的输出,而您只是想知道 你必须做什么才能获得该输出)

Math.Floor(113.065 * 100) / 100 => 113.06
Math.Floor(113.075 * 100) / 100 => 113.07
Math.Floor(113.085 * 100) / 100 => 113.08
Math.Floor(113.095 * 100) / 100 => 113.09

关于x.95 的 C# Math.Round 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31732657/

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