一. 常规的格式化
//创建一个NumberFormatter对象
let format = NumberFormatter()
//设置numberStyle(有多种格式)
format.numberStyle = .decimal
let string = format.string(from: NSNumber(value: 1234567.89))
print(string)
//显示样式和输出样式
numberStyle:
public enum Style : UInt {
case none //1234567.89
case decimal //1,234,567.89
case currency //¥1,234,567.89
case percent //123,456,789%
case scientific //1.23456789E6
case spellOut //一百二十三万四千五百六十七点八九
@available(iOS 9.0, *)
case ordinal //第123,4568
@available(iOS 9.0, *)
case currencyISOCode //CNY1,234,567.89
@available(iOS 9.0, *)
case currencyPlural//1,234,567.89人民币
@available(iOS 9.0, *)
case currencyAccounting//¥1,234,567.89
}
参考链接:https://blog.csdn.net/C_calary/article/details/52895762
二. 复杂要求的格式化
- 设置格式宽度、填充符、填充位置
// 原始值
let number = NSNumber(value: 12345.6789)
//创建一个NumberFormatter对象
let numberFormatter = NumberFormatter()
//设置number显示样式
numberFormatter.numberStyle = .none //四舍五入的整数
numberFormatter.formatWidth = 10 //位数补齐10位
numberFormatter.paddingCharacter = "0" //不足位数用0补(也可以用空格或者其他的补齐)
numberFormatter.paddingPosition = .beforePrefix //补在前面
let format = numberFormatter.string(from: number)!
//打印结果
print("原始值 = \(number)")
print("格式化结果 = \(format)")
运行结果图片:
- 设置前缀、后缀
(1) 使用positivePrefix和positiveSuffix的格式
// 原始值
let number = NSNumber(value: 12345.6789)
// 创建一个NumberFormatter对象
let numberFormatter = NumberFormatter()
// 设置number显示样式
numberFormatter.numberStyle = .none //四舍五入的整数
numberFormatter.positivePrefix = "$" //自定义前缀
numberFormatter.positiveSuffix = "元" //自定义后缀
let format = numberFormatter.string(from: number)!
// 打印结果
print("原始值 = \(number)")
print("格式化结果 = \(format)")
运行结果图片:
(2) 使用positiveFormat格式,参照「(3)设置格式化字符串」也可以达到设置前缀后缀的目的
- 设置格式化字符串
// 原始值
let number = NSNumber(value: -12345.6789)
// 创建一个NumberFormatter对象
let numberFormatter = NumberFormatter()
//设置number显示样式
numberFormatter.positiveFormat = "¥###,###.##"
let format = numberFormatter.string(from: number)!
// 打印结果
print("原始值 = \(number)")
print("格式化结果 = \(format)")
运行结果图片:
参考链接:https://www.hangge.com/blog/cache/detail_2086.html#