当我把这个函数称为圆形(50.080,3)时我得到“50.08”我怎么能强制保持尾随零?
Public Function Rounded(ByVal Number, ByVal Decimals)
Rounded = Int(Number * 10 ^ Decimals + 1 / 2) / 10 ^ Decimals
End Function
答案 0 :(得分:3)
Dim RoundedString As String = FormatNumber(Rounded, Decimals, , , TriState.False)
应该为你做
答案 1 :(得分:1)
为了您自己的健康,请打开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
。
答案 2 :(得分:0)
你可以使用decimal.Round(yourValue,2,MidpointRounding.AwayFromZero); 详情见http://msdn.microsoft.com/en-us/library/9s0xa85y.aspx