我如何在 vb.net 中四舍五入到最接近的 5000。不能使用 math.round 因为它给出了错误。我正在微软 exel 中寻找类似 mround() 的东西。
Math.round(43333 * 34, 5000)
我如何在 vb.net 中四舍五入到最接近的 5000。不能使用 math.round 因为它给出了错误。我正在微软 exel 中寻找类似 mround() 的东西。
Math.round(43333 * 34, 5000)
尝试
Math.Round(43000 / 5000) * 5000
如:
For Each x In New Single() {2499, 2501, 7000, 21000, 43000, 99000}
Console.WriteLine(String.Format( _
"Rounding {0,7:N0} to the nearest 5,000: {1,7:N0}", _
x, _
Math.Round(x / 5000) * 5000) _
)
Next
Console.ReadKey(True)
输出:
Rounding 2,499 to the nearest 5,000: 0
Rounding 2,501 to the nearest 5,000: 5,000
Rounding 7,000 to the nearest 5,000: 5,000
Rounding 21,000 to the nearest 5,000: 20,000
Rounding 43,000 to the nearest 5,000: 45,000
Rounding 99,000 to the nearest 5,000: 100,000
我要补充一点,默认的舍入行为Math.Round
是MidpointRounding.ToEven
文档描述为“当一个数字介于两个其他数字之间时,它会向最接近的偶数四舍五入。 ”这意味着0.5
可能会四舍五入0
或1
根据情况(其中是处理统计数据时的期望行为)。要更改此行为,您可以将MidpointRounding.AwayFromZero
其作为第二个参数传递,该参数的行为将与您在学校所教的一样(0.5
始终舍入为1
,-0.5
始终舍入为-1
)。