c#数学.x.95的圆形问题
本文关键字:问题 数学 | 更新日期: 2023-09-27 18:05:33
刚刚遇到一个奇怪的问题:
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!这可能吗?
Thx
Math.Round(113.095, 2, MidpointRounding.ToEven) => 113.1
即甚至。读入小数点后两位:
113.1010是偶数部分。右边的零只是让它看起来很奇怪("奇数"在"不偶数"的意义上,不要被"奇数"的意思混淆为"奇怪"),但这就是为什么它会这样显示。
还有,你问题中的例子是不准确的。以下是它们的输出,这将进一步加强您将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