Dans iOS 6 (et peut-être plus tôt), vous pouvez connaître le nombre de chiffres après la virgule d'une monnaie des minimumFractionDigits propriété d'un NSNumberFormatter réglé sur l'environnement local correct:
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)
Notez que vous devez appeler [formatter setNumberStyle: NSNumberFormatterCurrencyStyle] avant que les minimumFractionDigits propriété est renseignée avec la valeur correcte (que l'on ne m'a pris une demi-heure notre pour travailler!)
Le lien fourni n'est plus valide, je suppose que c'était censé être: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=46121 mais cela pointe vers une page où vous pouvez acheter la spécification complète. Wikipedia maintenir la liste ici: http://en.wikipedia.org/wiki/ISO_4217 – knightpfhor
'DECIMAL (19, 4)' ** est un choix populaire ** vérifier [this] (http://stackoverflow.com/questions/224462/storage-money-in-a-decimal-column-what-precision-and-scale) vérifie également [ici] (http://www.thefinancials.com/Default.aspx?SubSectionID=curformat) Formats monétaires mondiaux pour décider du nombre de décimales à utiliser, l'espoir aide. – stom