当我像这样调用此函数 Rounded(50.080, 3) 我得到“50.08”时,如何强制保留尾随零?
Public Function Rounded(ByVal Number, ByVal Decimals)
Rounded = Int(Number * 10 ^ Decimals + 1 / 2) / 10 ^ Decimals
End Function
当我像这样调用此函数 Rounded(50.080, 3) 我得到“50.08”时,如何强制保留尾随零?
Public Function Rounded(ByVal Number, ByVal Decimals)
Rounded = Int(Number * 10 ^ Decimals + 1 / 2) / 10 ^ Decimals
End Function
Dim RoundedString As String = FormatNumber(Rounded, Decimals, , , TriState.False)
应该为你做
为了您自己的健康,请打开Option Strict
并Option 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
完全删除。
您可以使用,在此处decimal.Round(Value, 2, MidpointRounding.AwayFromZero)
查看更多详细信息