数字(金额)的格式化

一. 常规的格式化

//创建一个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

二. 复杂要求的格式化

  1. 设置格式宽度、填充符、填充位置
// 原始值
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. 设置前缀、后缀

(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)设置格式化字符串」也可以达到设置前缀后缀的目的

  1. 设置格式化字符串
// 原始值
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#

发布了4 篇原创文章 · 获赞 0 · 访问量 78

猜你喜欢

转载自blog.csdn.net/weixin_42163902/article/details/104074084
今日推荐