2012-02-13 157 views
3

我想錢格式示例的數學結果轉換:貨幣格式數VB.NET

Dim num1 As Integer = 2000 
Dim num2 As Integer = 500 

msgbox(cDbl(num1 + num2)) 

它只返回2500,我需要回到我2,500.00 如果任何人有任何想法如何我會非常有幫助的感謝。

回答

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 
+0

你的答案是正確的,但有一些方法來添加逗號? (2,500.00)謝謝:) – 2012-02-13 18:00:50

+0

這就是爲什麼我說「調整格式字符串以適應」[MSDN文檔](http://msdn.microsoft.com/en-us/library/0c899ak8.aspx)是相當的,甚至允許專門用於[指定貨幣](http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx) – 2012-02-13 18:05:50

0

看看的的String.Format的文檔,你會找到你需要的東西。

3

Standard Numeric Format String

爲一般編號很好的資源格式,最上面的一個爲貨幣(這考慮到培養的差異)

「C」 或 「c」 爲貨幣

  • 受所有數字類型支持。
  • 精度說明符:小數位數。
  • 默認精度說明符:由System.Globalization.NumberFormatInfo定義。

更多信息:貨幣(「C」)格式說明符。

  • 123.456( 「C」,EN-US) - > $ 123.46
  • 123.456( 「C」,FR-FR) - > 123,46€
  • 123.456( 「C」,JA-JP ) - >¥123
  • -123.456( 「C3」,EN-US) - >($ 123.456)
  • -123.456( 「C3」,FR-FR) - > -123,456€
  • -123.456(」 C3「,ja-JP) - > - ¥123.456
7

首先,你笑在處理貨幣價值時使用Decimal而不是DoubleDouble有一些舍入問題。

其次,你可以使用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

你通常不使用Integer的數據類型爲貨幣值。改爲使用Double

我確定有很多方法可以將輸出字符串格式化爲貨幣值。

一個如果我知道的方法已經由Rowland Shaw解釋。所以我會跳到另一個。它是內置函數,稱爲FormatCurrency。它將輸出字符串作爲貨幣值加上與系統中定義的貨幣符號。在FormatCurrency

Dim num1 As Double = 2000 
Dim num2 As Double = 500 
Dim ans As Double = num1 + num2 

MessageBox.Show(FormatCurrency(ans)) 

更多細節,看here

+1

downvote - double不是貨幣值的良好數據類型。可能會有舍入問題。應該使用Decimal類型。 – JSR 2012-02-13 21:38:47

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")) 
0

formatcurrency翻番

value = 1500,20 TL 

ctype(value, double) 

return 1500,20 

雙待formatcurrency

樣品

value = 1500,1995 

formatcurrency(value,2) 

return = 1500,20 TL moneysembol (TL , $ ,vs..) 
+0

如果您在答案中粘貼代碼,請使用{}標籤突出顯示語法。它會讓你的回答更容易閱讀。 – 2012-12-20 17:45:42