我试图使用以下代码段
将双值转换为货币格式+(NSString *)formatAmountToCurrency:(double)amount{
NSLocale *priceLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"sv-SE"] ;
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *negFormat = [NSString stringWithFormat:@"-%@",formatter.positiveFormat];
[formatter setNegativeFormat:negFormat];
[[PropertyManager sharedPropertyManager]setCurrencyFormatter:formatter];
[formatter setLocale:priceLocale];
NSString * priceString = [formatter stringFromNumber:@(amount)];
return priceString;
}
问题是..它正在研究美元和欧元甚至丹麦克朗等格式......但是当使用sv-SE(瑞典语的形式)时,它会提供空间而不是点组分隔符。 例如 1900.50将是(1 900,50 Kr)..虽然应该是(1.900,50)..它正在移除点并用空格替换
任何想法都将受到赞赏。
答案 0 :(得分:1)
我已经研究过,瑞典货币格式是####,##(http://www.thefinancials.com/Default.aspx?SubSectionID=curformat) - 带有空格。
无论如何,你要归还一个字符串,你可以替换你不想要的东西,见:
+(NSString *)formatAmountToCurrency:(double)amount{
[...]
NSString * priceString = [formatter stringFromNumber:@(amount)];
priceString = [priceString stringByReplacingOccurrencesOfString:@" Kr" withString:@""];
priceString = [priceString stringByReplacingOccurrencesOfString:@" " withString:@"."];
return priceString;
}
我知道,这是一个丑陋的解决方案,但它现在有效。
答案 1 :(得分:0)
尝试使用setGroupingSeparator
,如下所示:
[formatter setGroupingSeparator:@"."];