【问题标题】:NSNumberFormatter paddingPosition doesn't workNSNumberFormatter paddingPosition 不起作用
【发布时间】:2015-11-17 15:51:24
【问题描述】:

我有一个这样的格式化货币值。 $99.99。我需要在货币符号和金额之间留一个空格,例如$ 99.99。从这个answer 我发现我需要为此使用填充。但是我正在尝试的方法不起作用。

private var currencyFormatter: NSNumberFormatter = {
    let formatter = NSNumberFormatter()
    formatter.numberStyle = .CurrencyStyle
    formatter.paddingPosition = .AfterPrefix
    return formatter
}()

var price: Float = 99.99


let s = currencyFormatter.stringFromNumber(price)
print(s!) // I still get $99.99

也许我错过了什么?

【问题讨论】:

    标签: ios swift currency nsnumberformatter


    【解决方案1】:

    为了显示该填充,您需要为格式化程序提供宽度:

    let currencyFormatter: NumberFormatter = {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.paddingPosition = .afterPrefix
    
        // pad with a space, use a minimum of seven characters
        formatter.paddingCharacter = " "
        formatter.formatWidth = 7
    
        return formatter
    }()
    
    print(currencyFormatter.stringFromNumber(99.99)!)
    // prints "$ 99.99"
    

    或者,如果您总是需要一个空格,您可以尝试修改货币符号:

    formatter.currencySymbol = "\(formatter.currencySymbol) "
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多