我正在尝试转换货币格式示例的数学结果:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
它只返回 2500,如果有人知道我将如何非常有帮助,我需要返回我的 2,500.00,谢谢。
我正在尝试转换货币格式示例的数学结果:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
它只返回 2500,如果有人知道我将如何非常有帮助,我需要返回我的 2,500.00,谢谢。
首先,您应该在处理货币价值时使用Decimal
而不是。有一些舍入问题。Double
Double
其次,您可以使用字符串格式:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
Diml value As Decimal = CDec(num1 + num2)
Dim formattedValue As String = String.Format("{0:n}", value)
msgbox(formattedValue)
您MsgBox
向您展示了价值,但它没有格式化它,因为您没有要求它。
如果您更进一步并将结果格式化为 string,您将获得所需的格式,例如:
Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim sum As Double = num1 + num2
MsgBox(sum.ToString("0.00")) ' Adjust format string to suit
是通用数字格式的重要资源,最重要的是货币(考虑到文化差异)
“C”或“c”表示货币
更多信息:货币(“C”)格式说明符。
如果您希望格式为货币,则以下任何一种都可以:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
MsgBox(String.Format("{0:C2}", num1 + num2))
或者
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
Dim sum As Integer = num1 + num2
MsgBox(sum.ToString("C2"))
格式货币翻倍
value = 1500,20 TL
ctype(value, double)
return 1500,20
双重格式化货币
样本
value = 1500,1995
formatcurrency(value,2)
return = 1500,20 TL moneysembol (TL , $ ,vs..)
Dim num1 As Decimal = 20
Dim num2 As Decimal = 34
Dim ans As Decimal
ans = num1 + num2
MsgBox(ans.ToString("c"))
看看 String.Format 文档,你会在那里找到你需要的东西。
您通常不用Integer
作货币值的数据类型。改为使用Double
。
我确信有很多方法可以将输出字符串格式化为货币值。
如果我知道的方法已经被 Rowland Shaw 解释过。所以我会跳到另一个。它是名为 的内置函数FormatCurrency
。它会将字符串输出为货币值加上系统中定义的货币符号。
Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim ans As Double = num1 + num2
MessageBox.Show(FormatCurrency(ans))
更多详情FormatCurrency
,请看这里。