回合数字,但保持准确的数字

时间:2014-03-31 02:24:19

标签: vb.net formatting significant-digits

当我把这个函数称为圆形(50.080,3)时我得到“50.08”我怎么能强制保持尾随零?

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

3 个答案:

答案 0 :(得分:3)

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

应该为你做

答案 1 :(得分: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

答案 2 :(得分:0)

你可以使用decimal.Round(yourValue,2,MidpointRounding.AwayFromZero); 详情见http://msdn.microsoft.com/en-us/library/9s0xa85y.aspx