2012-09-19 149 views
4

我相處融洽,沒有英語語言環境的設備,英國貨幣格式化是這樣的:Android的貨幣符號訂貨

1 $

如果我有英語語言環境中,我得到歐元貨幣,如:

€1

使用

format.setCurrency(Currency.getInstance(currency)); 
return format.format(amount); 

發現於文獻展重刑:

http://developer.android.com/reference/java/util/Currency.html#getSymbol()

返回此貨幣語言環境的本地化貨幣符號。也就是說,給定「美元」和Locale.US,你會得到「$」,但給「美元」和非美國地區,你會得到「美元」。 (例如Locale.JAPANESE或{new Locale(「en」,「」))而不是Locale.JAPAN或{new Locale(「en」),而不是Locale.JAPAN或{new Locale(「en」,「」)}指定的區域設置僅指定語言而不是語言和國家/ ,「US」)}),返回ISO 4217貨幣代碼。

如果沒有特定於區域的貨幣符號,則返回ISO 4217貨幣代碼。

是不是相同的方法,但可能有關。爲什麼它使我的設備在貨幣符號排序的區域有所不同?不管我使用的是哪種語言環境,1 $都是不正確的。

有沒有辦法改變它?

+0

認沽貨幣符號到本地資源價值工程,價值-FRA,值儒 – Yahor10

+2

量之後寫的貨幣是在某些地區正確。例如,瑞典的書寫規則就建議這樣做。 – Albin

回答

2

該方法的行爲是正確的。

並非所有國家都希望貨幣符號在金額前。

如果您始終希望貨幣格式符合美國期望值,請將語言環境保留爲Locale.US。如果您希望貨幣以本地化方式顯示,請保持原樣。

看到這個簡短的指南(來自微軟,不會少):

Globalisation Step-by-Step

我猜你可能試圖實現在適當的區域設置的格式顯示貨幣?如果是這種情況,只需在調用方法之前將語言環境與您使用的貨幣進行匹配即可。

請注意,格式在同一個國家甚至可能不同。在加拿大,看到說英語的人使用50.00美元的格式是相當普遍的,而法裔加拿大人可能使用50,00美元。

也可參閱UX這樣一個問題:

https://ux.stackexchange.com/questions/22574/where-to-place-currency-symbol-when-localizing-and-what-to-do-with-odd-symbols

+0

好的,所以€1不是總體不正確?我認爲1€必須總是這樣寫(或者1美元),並且它與它的顯示位置沒有任何關係。如果這不是不正確的,我會讓它在它上面。不想做任何特別的事情,只要修復錯誤就行了。 – Ixx

+0

我不認爲這是一個錯誤。作爲一名英國人,我總是會寫1歐元,但是整個頻道(在法國)的任何人都可能會預期1歐元。 – Mikaveli

+0

好的。然後,我讓它像現在一樣。感謝您的回答。 – Ixx