我需要使用货币符号格式化数字,我使用以下代码。我面临的问题是该数字正在四舍五入到34.80,这只发生在一些货币上,如果我在下面的代码中将货币代码更改为“INR”而不是结果显示金额而没有四舍五入。
NSDecimalNumber *num = (NSDecimalNumber*)[NSDecimalNumber numberWithDouble:34.78f];
NSString *curr = @"CHF";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.currencyCode = curr;
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
NSString *result = [formatter stringFromNumber:num];
答案 0 :(得分:2)
你遇到了Swedish rounding!瑞士法郎的面值最低为0.05法郎。按照惯例,显示的价格在显示时四舍五入到最接近的0.05的边界倍数。我链接的维基百科页面包含使用此类舍入的其他货币的示例,其中包含0.05,0.1,0.25和0.5的各种倍数。