iOS 14 上的 NSNumberFormatter 错误

Posted

技术标签:

【中文标题】iOS 14 上的 NSNumberFormatter 错误【英文标题】:NSNumberFormatter bug on iOS 14 【发布时间】:2020-09-21 09:05:59 【问题描述】:

当您的地区设置为柬埔寨时,ios14 上的NSNumberFormatter 似乎存在错误,其中金额被格式化为“1.234,56”,这不是那里使用的格式。

在 iOS13 上没问题。我看不到有关此更改的任何参考。

有什么解决方法吗?


更新: iOS 14.2 仍然存在问题

【问题讨论】:

货币在金额之前/之后也发生了变化。奇怪的。我不住在那里,所以我不知道是否发生了变化,或者是修复还是新错误,但如果是错误,我不会打开雷达。 FWIW 在模拟器中的屏幕类似于你的 iOS 14 的 iPad 和在 macos 上它类似于你的 13。 【参考方案1】:

我认为您可以修改 NumberFormatter 的参数以满足您的需要。像这样的

let formatter = NumberFormatter()
//formatter.locale = Locale.init(identifier: Locale.current.identifier)
formatter.numberStyle = .currency
formatter.currencyGroupingSeparator = ","
formatter.currencyDecimalSeparator = "."
//by default its 3
formatter.maximumFractionDigits = 2

print(formatter.string(from: 1000000.00))
//Outputs Optional("TND 1,000,000.00")

【讨论】:

以上是关于iOS 14 上的 NSNumberFormatter 错误的主要内容,如果未能解决你的问题,请参考以下文章

iOS 14 上的多播网络授权

iOS 14+ 上的 Flutter FCM 9+

在 iOS 14 上的一半屏幕上呈现 UIViewController

一个额外的 UITableViewCellContentView 覆盖出现在 iOS 14 上的 TableView 中,防止点击,但在 iOS 13 上工作正常

iOS 13 和 14 上的 NSKeyValuePopPendingNotificationLocal 崩溃

iOS 14 上的 WKWebView 仅在显着延迟后加载内容