当我调用这个函数像这样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)
应该为你
这不起作用,因为它将“1542.800”转换为“1,542.800” – XK8ER
对不起。我编辑它,现在应该修复它。 – Schickmeister
您可以使用decimal.Round(yourValue,2,MidpointRounding.AwayFromZero); 详见http://msdn.microsoft.com/en-us/library/9s0xa85y.aspx
请,为自己的健康,打开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
。
你的意思是零尾随做到这一点? – Blorgbeard
你是不是指尾随零?这是一个演示问题,实际上不应该是舍入函数的关注。 – DeanOC