达到最大值后自动添加一个带有最大值的加号

时间:2019-01-10 19:06:39

标签: swift foundation nsnumberformatter

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

3 个答案:

答案 0 :(得分:0)

这里是一种解决方案,可以根据当前语言环境的语言方向在数字的右边或左边放置加号:

i = 1

答案 1 :(得分:-1)

即使您不是您要找的东西,这也可以。

let numberFormatter = NumberFormatter()

numberFormatter.maximum = 9

func formatMax(_ s: Int) -> String {
        if numberFormatter.number(from: String(s)) == nil {
            return "\(numberFormatter.maximum!)" + "+"
        } else {
            return String(s)
        }
}

print(formatMax(11))

答案 2 :(得分:-2)

这不是NumberFormatter的工作,但这是一个简单的函数可以为您完成此操作:

func ffs(_ number:NSNumber) -> String{
    let max = 9
    if (Int(truncating: number) > max){
        return "\(max)+"} else {
        return "\(number)"
    }
}

然后打印(ffs(10))