NumberFormatter 和 DateFormatter 都遵守 Formatter协议。
NumberFormatter类有个属性numberStyle,它是一个枚举型,设置不同的值可以输出不同的数字格式。该枚举包括:
//原值2.7999999999,
public enum Style : UInt, @unchecked Sendable {
case none = 0//无格式,四舍五入,直接输出3
case decimal = 1 //小数型,保留小数输出2.8
case currency = 2//货币型,加上了人民币标志,原值输出¥2.8
case percent = 3//百分比型,本身数值乘以100后用百分号表示,输出280%
case scientific = 4 //科学计数型,原值表示,输出2.799999999E0
case spellOut = 5 //全拼,原值的中文表示,输出二点七九九九...
@available(iOS 9.0, *)
case ordinal = 6 //序数,3nd
@available(iOS 9.0, *)
case currencyISOCode = 8 //货币ISO代码 CNY 2.799
@available(iOS 9.0, *)
case currencyPlural = 9 //货币复数 2.799 Chinese yuan
@available(iOS 9.0, *)
case currencyAccounting = 10 //货币会记 2.799
}
其中第三项和后五项的输出会根据系统设置的语言区域的不同而不同
//示例代码
static var formatter: NumberFormatter {
let formatter = NumberFormatter()
formatter.numberStyle = . decimal
formatter.maximumFractionDigits = 3
formatter.currencySymbol = ""
return formatter
}