我閱讀了關於NSLocaleCurrencySymbol的內容,但我在哪裏可以找到用於確定一個國家貨幣中使用的「小數位數」的變量?iPhone-SDK中的各個國家的「貨幣小數位數寬度」
I.E.在美國,通常會看到美元金額寫成2位小數:$ 1.23
其他許多國家呢?
我閱讀了關於NSLocaleCurrencySymbol的內容,但我在哪裏可以找到用於確定一個國家貨幣中使用的「小數位數」的變量?iPhone-SDK中的各個國家的「貨幣小數位數寬度」
I.E.在美國,通常會看到美元金額寫成2位小數:$ 1.23
其他許多國家呢?
這有很多的,你在找什麼。
還有許多其他國家顯示不同的小數位數。 2是大多數,0(其貨幣中沒有美分,例如日本)是最大的少數,3只在少數中使用。沒有其他我知道的號碼。匯率報價時,通常使用更多的小數位數。下面顯示了我知道的0和3的貨幣。 http://www.iso.org/iso/support/currency_codes_list-1.htmhttp://en.wikipedia.org/wiki/ISO_4217或http://www.currency-iso.org/en/home/tables/table-a1.html:
的ISO貨幣代碼可以在被發現。
ISO Code Currency Decimal places
ADP Andoran Peseta 0
AFA Afghani Afghani 0
BEF Belgian franc 0
BHD Bahraini dinar 3
BIF Burundi franc 0
BYB Belorussian rubel (old) 0
BYR Belorussian rubel (new) 0
CLP Chilean peso 0
COP Colombian peso 0
DJF Djibouti franc 0
ECS Ecuadorian sucre 0
ESP Spanish peseta 0
GNF Guinea franc 0
GRD Greek drachma 0
HUF Hungarian forint 0
IDR Indonesian rupiah 0
IQD Iraqui dinar 3
ITL Italian lira 0
JOD Jordan dinar 3
JPY Japanese yen 0
KMF Comoros franc 0
KRW South Korean won 0
KWD Kuwaiti dinar 3
LAK Laos new kip 0
LUF Luxembourg franc 0
LYD Libyan dinar 3
MGF Madagascan franc 0
MZM Mozambique metical 0
OMR Omani rial 3
PTE Portugese escudo 0
PYG Paraguay guarani 0
ROL Roumanian Lei 0
RWF Rwanda franc 0
TJR Tadzhikistani rubel 0
TMM Turkmenistani manat 0
TND Tunesian dinar 3
TPE Timor escudo 0
TRL Turkish lira 0
TWD New Taiwan dollar 0
UGX Uganda shilling 0
VND Vietnamese dong 0
VUV Vanuata vatu 0
XAF CFA Franc BEAC 0
XOF CFA Franc BCEAO 0
XPF CFP Franc 0
在iOS 6中(甚至更早),您可以在小數位的貨幣從minimumFractionDigits的NSNumberFormatter的屬性設置爲正確的語言環境後找出的位數:
void (^currency_test)(NSString *) = ^(NSString *locale) { NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:locale]]; [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; NSLog(@"%@: %@ (minimumFractionDigits = %d)", locale, [formatter stringFromNumber:@(1000)], [formatter minimumFractionDigits]); }; currency_test(@"en_US"); currency_test(@"nl_NL"); currency_test(@"de_DE"); currency_test(@"fr_FR"); currency_test(@"jp_JP"); currency_test(@"ar_JO"); en_US: $1,000.00 (minimumFractionDigits = 2) nl_NL: € 1.000,00 (minimumFractionDigits = 2) de_DE: 1.000,00 € (minimumFractionDigits = 2) jp_JP: ¥ 1000 (minimumFractionDigits = 0) ar_JO: ١٠٠٠٫٠٠٠ د.أ. (minimumFractionDigits = 3)
請注意,您必須致電[formatter setNumberStyle:NSNumberFormatterCurrencyStyle]之前的minimumFractionDigits屬性填充了正確的值(那個只花了我半小時我們的工作!)
我不能相信這個答案沒有更多的選票,並且它不是被接受的答案,因爲它是唯一真正回答OP問題的答案。您已經爲我節省了數小時的試驗和錯誤,並通過文檔進行漫遊。其中一種只有Stack Overflow可以提供的有價值的金塊。謝謝! – mluisbrown 2013-04-05 14:23:47
提供的鏈接不再有效,我懷疑它的意思是:http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=46121但這只是指向您可以購買完整規格的頁面。維基百科在這裏維護列表:http://en.wikipedia.org/wiki/ISO_4217 – knightpfhor 2012-09-25 23:47:34
'DECIMAL(19,4)**是一個流行的選擇**檢查[this](http://stackoverflow.com/questions/224462 /存儲貨幣在十進制列什麼精度和規模)也檢查[這裏](http://www.thefinancials.com/Default.aspx?SubSectionID=curformat)世界貨幣格式決定使用多少個小數位,希望有所幫助。 – stom 2015-10-28 12:53:08