2

当我像这样调用此函数 Rounded(50.080, 3) 我得到“50.08”时,如何强制保留尾随零?

Public Function Rounded(ByVal Number, ByVal Decimals)
    Rounded = Int(Number * 10 ^ Decimals + 1 / 2) / 10 ^ Decimals
End Function
4

3 回答 3

3
Dim RoundedString As String = FormatNumber(Rounded, Decimals, , , TriState.False)

应该为你做

于 2014-03-31T02:30:37.683 回答
1

为了您自己的健康,请打开Option StrictOption Explicit打开,除非您真的想要,否则请停止使用返回变量,并删除旧的 VB6 函数(如Int)。

然后你可能可以用这样的字符串格式来破解一些东西:

Public Function Rounded(number As Decimal, decimals As Integer) As String
    Return number.ToString("0." & New String("0"c, decimals))
End Function

但是,如果可以的话,通常最好自己使用格式字符串,例如num.ToString("0.000")小数点后三位,然后Rounded完全删除。

于 2014-03-31T02:30:03.800 回答
0

您可以使用,在此处decimal.Round(Value, 2, MidpointRounding.AwayFromZero)查看更多详细信息

于 2014-03-31T02:29:47.953 回答