我正在尝试转换货币格式示例的数学结果:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
它只返回2500,我需要返回我的2,500.00 如果有人知道我将如何非常有帮助谢谢。
答案 0 :(得分:7)
首先,在处理货币值时,您应该使用Decimal
而不是Double
。 Double
有一些四舍五入的问题。
其次,您可以使用string formatting:
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)
答案 1 :(得分:6)
您的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
答案 2 :(得分:3)
Standard Numeric Format String
是一般数字格式的绝佳资源,最重要的是货币(这考虑了文化差异)
货币
的“C”或“c”更多信息:货币(“C”)格式说明符。
答案 3 :(得分:1)
如果您希望格式为货币,则其中任何一种都可以使用:
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"))
答案 4 :(得分:0)
formatcurrency加倍
value = 1500,20 TL
ctype(value, double)
return 1500,20
格式化货币加倍
<强>样品强>
value = 1500,1995
formatcurrency(value,2)
return = 1500,20 TL moneysembol (TL , $ ,vs..)
答案 5 :(得分:0)
Dim num1 As Decimal = 20
Dim num2 As Decimal = 34
Dim ans As Decimal
ans = num1 + num2
MsgBox(ans.ToString("c"))
答案 6 :(得分:-1)
看一下String.Format文档,你会发现你需要的东西。
答案 7 :(得分:-1)
您通常不使用Integer
作为货币值的数据类型。请改用Double
。
我确信有很多方法可以将输出字符串格式化为货币值。
如果我所知道的方法已由Rowland Shaw解释过。所以我会跳到另一个。它是名为FormatCurrency
的内置函数。它将使用系统中定义的货币符号将字符串输出为货币值 plus 。
Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim ans As Double = num1 + num2
MessageBox.Show(FormatCurrency(ans))
有关FormatCurrency
的更多详情,请查看here。