带有货币符号的自定义数字格式化程序

custom number formatter with currency symbol

我有一个文本字段,用户应该在其中输入价格。 在此文本字段上,我使用以下设置拖动了自定义数字格式化程序:

这工作近乎完美,但我对 "Format" 有疑问。 目前是:.#.##

但是我必须更改什么才能在最后自动显示正确的用户货币符号?

您也可以像这样使用数字格式化程序:

let price = 592.12
let formatter = NumberFormatter()
formatter.numberStyle = .currency

//change this to get your desired currency
formatter.locale = Locale(identifier: "de_DE")
formatter.maximumFractionDigits = 0;

let priceText = formatter.string(for: price)
//priceText = 592,12 €

对于静态解决方案,您只需将格式从 .#.## 更改为 .#.## €

如果您正在寻找通用的方法,您会对符号 ¤ 感兴趣,它负责货币符号。

所以你要找的格式是,#.## ¤

最后一步是检查选项 lenient,否则您需要在文本字段中提供完整格式。

更多详情

自 OSX 10.9 和 iOS 7 以来,格式字符串使用来自 the Unicode Technical Standard #35 of version 31.

的模式

您可以在此版本中找到所有数字格式模式here

Apple documentation about number formatters

能否使用格式化程序提供的默认货币模式,还是需要进行额外的自定义格式化: