In iOS 6 (und früher möglicherweise) Sie können die Anzahl der Stellen nach dem Komma einer Währung von den minimumFractionDigits Eigenschaft eines NSNumberFormatter auf das richtige Gebietsschema festgelegt herauszufinden:
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)
Beachten Sie, dass Sie nennen müssen [Formatierer setNumberStyle: NSNumberFormatterCurrencyStyle] vor den minimumFractionDigits Eigenschaft mit dem richtigen Wert aufgefüllt wird (dass man mich nur dauerte eine halbe Stunde unsere zu arbeiten!)
Der Link zur Verfügung gestellt ist nicht mehr gültig, ich vermute, es sollte sein: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=46121 aber das zeigt nur auf eine Seite, wo Sie die volle Spezifikation kaufen können. Wikipedia pflegen Sie die Liste hier: http://en.wikipedia.org/wiki/ISO_4217 – knightpfhor
'DECIMAL (19, 4)' ** ist eine beliebte Wahl ** überprüfen [this] (http://stackoverflow.com/questions/224462/Speichern-Geld-in-Dezimal-Spalte-what-precision-and-scale) überprüfen Sie auch [hier] (http://www.thefinancials.com/Default.aspx?SubSectionID=curformat) World Currency Formate um zu entscheiden, wie viele Dezimalstellen zu verwenden sind, hilft Hoffnung. – stom