NumberFormatter:货币与 PositivePrefix 不兼容吗?

Sté*_*uca 5 currency numberformatter swift

我偶然发现了一个与 相关的问题NumberFormatter。当我将 设为positivePrefixplusSign,货币符号不再存在。

\n

这是一个错误还是我错过了什么?

\n
let formatter = NumberFormatter()\nformatter.numberStyle = .currency\nformatter.minimumFractionDigits = 0\nformatter.currencyCode = "EUR"\nformatter.maximumFractionDigits = 2\nformatter.positivePrefix = formatter.plusSign // Remove that to get \xe2\x82\xac25 (depends on your locale)\nlet price = 25.0\nlet s = formatter.string(from: NSNumber(value: price))\n\nprint("Price: \\(s)"). // "Price: +25"\n
Run Code Online (Sandbox Code Playgroud)\n

Ale*_*kov 3

当货币符号位于数值之前(取决于区域设置)时,则positivePrefix包含货币符号。因此,将其更改为formatter.plusSign仅清除结果字符串中的货币符号。

这就是我解决问题的方法:

formatter.positivePrefix = formatter.negativePrefix.replacingOccurrences(of: formatter.minusSign, with: formatter.plusSign) 
Run Code Online (Sandbox Code Playgroud)