gpt4 book ai didi

swift - 达到最大值后自动添加加号

转载 作者:搜寻专家 更新时间:2023-11-01 05:44:48 26 4
gpt4 key购买 nike

NumberFormatter(或类/结构中的任何其他构建)是否有可能在达到某个最大值后返回具有某个最大值的本地化加号?我试过这个:

let numberFormatter = NumberFormatter()

numberFormatter.maximum = 9

print(numberFormatter.string(from: 10))

但它只返回 "10",我期待/希望 "9+"(因为我的本地化设置为英语,因此 + 在这里是加号并附加在 9 之后,因为我们是从左到右阅读的)。是否可以使用现有的类/结构(我认为 NumberFormatter 可以完成这项工作)来处理加号内置的本地化?在其他语言中,加号是不同的,甚至可能在数字前面。

我不想手动添加加号。

我认为 NumberFormatter 应该能够本地化加号:https://developer.apple.com/documentation/foundation/numberformatter/1416423-plussign

最佳答案

这里有一个解决方案,根据当前语言环境的语言方向,将加号放在数字的右边或左边:

func format(number: Double, limit: Double) -> String {

if let languageCode = Locale.current.languageCode, number > limit {
let direction = Locale.characterDirection(forLanguage: languageCode)
if direction == .leftToRight {
return "\(limit)" + NumberFormatter().plusSign
} else {
return NumberFormatter().plusSign + "\(limit)"
}
} else {
return "\(number)"
}
}

format(number: 10, limit: 9) //"9.0+"

关于swift - 达到最大值后自动添加加号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135384/

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