我试图转换一个数学结果的钱格式的例子。
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
它只返回2500,我需要返回我的2500. 00如果有人有任何想法,我将是非常有帮助的感谢。
你的 MsgBox
显示你的值,但它没有格式化它,因为你没有要求它这样做。
如果你再进一步 将结果格式化为一个字符串,你会得到你想要的格式,如
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
首先,你应该使用 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)
是一个很好的资源,用于一般的数字格式,最重要的是货币(这要考虑到文化差异)。
"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
,看 此处.