如何解决更改货币格式的默认语言环境行为
|| 我面临一个奇怪的问题。我的应用程序依赖双重转换: 货币字符串->数字->货币字符串 基本上,单个转换是通过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]];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。