更改货币格式的默认语言环境行为

|| 我面临一个奇怪的问题。我的应用程序依赖双重转换:   货币字符串->数字->货币字符串 基本上,单个转换是通过iOS的内置本地化功能实现的。我最近发现,当用户使用瑞士法郎作为货币时,该应用程序无法正常运行。显然,此语言环境的默认值是将所有货币值四舍五入到最接近的5美分。 (例如,1.28瑞士法郎将变为1.30瑞士法郎,而1.21瑞士法郎将变为1.20瑞士法郎)。 出于多种原因,对于我来说,解决格式约定比解决仅针对该语言环境的错误要容易得多。 您是否知道一种强制转换为每个语言环境使用更详细的舍入方法(例如0.01代替0.05)的方法? 谢谢!     
已邀请:
        我找到了一个有趣的解决方案:
currencyFormatter  = [[NSNumberFormatter alloc] init];
[currencyFormatter setGeneratesDecimalNumbers:YES];
[currencyFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
// This will force the rounding behavior:
[currencyFormatter setRoundingIncrement:[NSNumber numberWithFloat:0.01]];
    

要回复问题请先登录注册