gpt4 book ai didi

iOS13 : NumberFormatter missing groupingSeparator when try to format 4 digits numbers with es_ES locale

转载 作者:行者123 更新时间:2023-11-28 07:19:16 25 4
gpt4 key购买 nike

我已将我的项目更新到 iOS 13,我发现我用于格式化价格的价格格式化程序已停止正常工作。

groupingSeparator,即对千位进行分组的符号,缺少 4 位数字:使用西类牙语区域设置 es_ES 时从 1000 到 9999。

下面有一个简单的片段来验证它。NumberFormatter 似乎非常适合 en_US 区域设置和大于 9999 的数字,但每当使用 es_ES 区域设置并尝试格式化 4 位数字时, groupingSeparator(千位分隔符)丢失了,所以我得到的不是 1.000,而是 1000。


let enFormatter = NumberFormatter()
enFormatter.locale = Locale(identifier: "en_US")
enFormatter.numberStyle = .decimal
enFormatter.string(from: 1000)
enFormatter.string(from: 9999)
enFormatter.string(from: 10000)
enFormatter.string(from: 100000)

let esFormatter = NumberFormatter()
esFormatter.locale = Locale(identifier: "es_ES")
esFormatter.numberStyle = .decimal
esFormatter.string(from: 1000)
esFormatter.string(from: 9999)
esFormatter.string(from: 10000)
esFormatter.string(from: 100000)

只需将其粘贴到 playground 中并检查输出即可。

Different outputs for en_US and es_ES NumberFormatter

我错过了什么吗?

到目前为止,我已将问题报告给 Apple:FB7416623 https://feedbackassistant.apple.com/feedback/7416623 (不确定链接是否有效)

我会保持更新,但如果有人能提供更多相关信息,我将不胜感激。

最佳答案

基于 this article from the RAE (Real Academia de la Lengua Española:西类牙皇家学院)和this other one from the Fundéu (Fundación del Español Urgente:Urgent Spanish Foundation),现在的规则是不对 4 位数字使用分组分隔符,而对其余情况使用空格作为分组分隔符。例如:

1000  -> 1000
15000 -> 15 000

但是 ISO 规则建议即使是 4 位数字也应保留分组分隔符。

关于iOS13 : NumberFormatter missing groupingSeparator when try to format 4 digits numbers with es_ES locale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com