Math.round:条件的圆数

时间:2015-03-22 06:55:53

标签: vb.net

我正试图通过接下来的事情来围绕一个数字:

单位数在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

任何帮助表示赞赏!

1 个答案:

答案 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)