在iPhone上:
Using the US locale, a currency looks like this: $1,234.56 Using the UK locale, a currency looks like this: £1,234.56 Using the German (Germany) locale, a currency looks like this: 1.234,56 € and finally, a Japanese currency: ¥1,234
日元没有小数,这对我的自定义键盘有很大影响。我正在尝试在Cocoa-touch框架中找到一个方法,它会告诉我特定货币有多少小数位 - 我的硬编码值2对我不公正:(
有人可以帮忙吗?
答案 0 :(得分:2)
我没有在Cocoa中编程多年,但是从NSNumberFormatter的文档中,有一个名为'currencyDecimalSeparator'的函数 - 至少可以告诉你货币是否有一个,这可能是一个开始?
答案 1 :(得分:2)
您应该能够使用CFNumberFormatter对象来获取所需的信息。具体来说,您可以使用CFNumberFormatterGetDecimalInfoForCurrencyCode:
CFStringRef localeIdent = CFSTR("JPY");
int numDecimals;
double rounding;
BOOL result = CFNumberFormatterGetDecimalInfoForCurrencyCode(localeIdent, &numDecimals, &rounding);
我希望有所帮助。
答案 2 :(得分:0)
金融公司维护此类信息的数据库。您可以购买数据或从在线来源导入数据。
另请注意:某些货币需要三到四位小数。有关示例,请参阅http://www.londonfx.co.uk/ccylist.html。
答案 3 :(得分:0)
我有类似的问题,但上面的答案并没有真正解决我的问题。
我最终在NSNumberFormatter上使用了maximumFractionDigits方法,这给了我0日语区域设置。确保为格式化程序使用 NSNumberFormatterCurrencyStyle ,否则您将在其他格式化程序中看到小数位。
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setLocale:[NSLocale currentLocale]];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@"Number of decimal places %i", [currencyFormatter maximumFractionDigits]);