我正试图通过接下来的事情来围绕一个数字:
单位数在5-10之间的数字将四舍五入到最接近的10 * x:
(for example: 5->10, 6->10, 27->30, 40->40, 56->60, etc)
。
单位数字在1-4之间的数字将四舍五入为0:
(for example: 4->0, 11->10, 12->10, 20->20, etc)
。
我想把它写成bu Math.Round
函数。
与此同时,我没有它就做到了:
Dim rest As Integer = r Mod 10
' round up
If rest >= 5 Then
r = r + (10 - rest)
Else ' round down
r = r - rest
End If
任何帮助表示赞赏!
答案 0 :(得分:1)
使用Math.Round非常简单
Dim roundedDecade as Double, originalNumber as Double
:
roundedDecade = Math.Round(originalNumber / 10, MidpointRounding.AwayFromZero) * 10
如果你想强制使用整数,只需使用CDbl和CInt强制进行一些转换。
Dim roundedDecade as Integer, originalNumber as Integer
:
roundedDecade = CInt(Math.Round(CDbl(originalNumber) / 10, MidpointRounding.AwayFromZero) * 10)