数字(金额)的格式化

一. 常规的格式化

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值