我正在对整个整数进行舍入代码。它已经开始四舍五入到最接近的 250
。
Math.round(FormatNumber(CType(txt_input.Text, Decimal), 0) / 250) * 250
但这不是我需要的。相反,我需要相应地向上/向下舍入:
如果数字小于 100
,我需要向下舍入到最接近的 250
,否则向上舍入到最近的 250
。
示例:
17541 = 17500
2101 = 2250
7499 = 7500
7099 = 7000
我应该如何让应用程序相应地使用 Math.Floor()
或 Math.Ceiling()
?
最佳答案
您可以检查是否N Mod 250
是 < 100
.
如果是,则减去余数,否则加上 250
减去余数:
Dim n1 As Integer = 17541
Dim roundToValue As Integer = 250
Dim n1Remainder As Integer = n1 Mod roundToValue
Dim n2 As Integer = If(n1Remainder < 100, n1 - n1Remainder, n1 - n1Remainder + roundToValue)
'Or
'Dim n2 As Integer = (n1 - n1Remainder) + If(n1Remainder < 100, 0, roundToValue)
2101 -> 2250
7499 -> 7500
17541 -> 17500
关于vb.net - 舍入数字 : if number is closer to 100, 向下舍入到最接近的 250,否则向上舍入到最接近的 250,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54429266/