ios - NSNumberFormatter paddingPosition 不起作用

标签 ios swift currency nsnumberformatter

我有一个像这样的格式化货币值。 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

也许我遗漏了什么?

最佳答案

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

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) "

关于ios - NSNumberFormatter paddingPosition 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761272/

相关文章:

c++ - react native 0.40.0 : Ordered comparison between pointer and zero ('NSNumber *' and 'int' )

ios - 使用 Swift 匹配 NSArray 中的 NSDictionary 的模式

java - Android 货币格式返回不同的货币符号

c# - Unity iOS 异常中的 XML 序列化

iphone - 自定义表格单元格背景图片

ios - ios中UITextView添加背景图片

swift - 如何通过镜像更改变量的值?

ios - 快速暂停无尽的 SKAction

java - 如果我们在数据库中只有国家代码,则获取货币代码

java - 将货币解析为双倍引发异常