2015-11-26 62 views
1

如何通過指定要使用的符號在VB.NET中格式化貨幣£或$。如何在VB.NET中格式化貨幣

我一直在使用formatcurrency,但是我找不到在數值前面改變符號的方法。

+0

NET應該使用當前文化的符號。你是否嘗試將這個符號用於外國文化? – Plutonix

+0

我已經建立了cultureinfo,如何指定英鎊? ,對於美國來說,它就是我們。 –

+0

如果答案適用於您,請點擊對號,將其從未答覆列表中移除。 – Plutonix

回答

3

使用傳統的VB函數,如FormatCurrency是有限的,因爲他們只知道當前的文化。 .ToString("C2")將使用符號和小數的當前文化。要指定一個不同的文化:

Dim decV As Decimal = 12.34D 

Console.WriteLine("In France: {0}", decV.ToString("C2", New CultureInfo("fr-FR"))) 
Console.WriteLine("For the Queen! {0}", decV.ToString("C2", New CultureInfo("en-GB"))) 
Console.WriteLine("When in Rome: {0}", decV.ToString("C2", New CultureInfo("it-IT"))) 
Console.WriteLine("If you are Hungary: {0}", decV.ToString("C2", New CultureInfo("hu-HU"))) 
Console.WriteLine("For the US of A: {0}", decV.ToString("C2", New CultureInfo("en-US"))) 

輸出:

在法國:12,34€
女王! £12.34
在羅馬當:€12,34
如果你是匈牙利:12,34英尺
對於美國:$ 12.34

Table of Language Culture Names, Codes


你也可以有將外幣字符串轉換爲值的問題,因爲CDec只知道如何使用本地文化。您可以使用Decimal.TryParse並指定傳入文化:

' Croatian currency value 
Dim strUnkVal = decV.ToString("C2", New CultureInfo("hr-HR")) 
Dim myVal As Decimal 

' if the string contains a valid value for the specified culture 
' it will be in myVal 
If Decimal.TryParse(strUnkVal, 
        NumberStyles.Any, 
        New CultureInfo("hr-HR"), myVal) Then 
    Console.WriteLine("The round trip: {0}", myVal.ToString("C2")) 
End If