一. 常规的格式化

//创建一个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.89case decimal //1,234,567.89case currency //¥1,234,567.89case percent //123,456,789%case scientific //1.23456789E6case 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#

数字(金额)的格式化相关推荐

  1. Java 数字金额,字符串格式化

    目录 一. 数字金额格式化 1.1 千位分隔符 1.2 保留整数 1.3 保留指定位小数 二. 字符串格式化 一. 数字金额格式化 1.1 千位分隔符 BigDecimal bigDecimal = ...

  2. vue格式化数字为财务数字金额

    vue格式化数字为财务数字金额 效果 1.在项目的src文件夹下新建filters文件夹,里面新建filters.js文件 2.在filters.js添加如下代码(下面介绍4种实现方式,推荐使用方法三 ...

  3. js和 ts 将大数字金额转换成带单位的数字金额,万,千万,亿,格式化金额数字,格式化成带单位的金额,附ts版代码

    js将大数字金额转换成带单位的数字金额,万,千万,亿, 第一个参数是在转换的数字, 第二个参数是返回的格式 不传第二个参数,返回数字和单位分开的,数组格式,传第二个参数后,返回数组和单位的字符串,这样 ...

  4. Java 将数字金额转成中文大写

    一个 Java 将数字金额转成中文大写的工具类,还不是很完善. import java.util.regex.Matcher; import java.util.regex.Pattern;publi ...

  5. C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码

    C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码 数据结构:用一个整型变量储存输入数字   大家可能会感觉用字符串取位更方便一些·· 但是相应的,字符串失去了数字原有的意思 00100和100对 ...

  6. java数字金额大写金额_Java实现 “ 将数字金额转为大写中文金额 ”

    前言: 输入数字金额参数,运行程序得到其对应的大写中文金额:例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分:重点来了:本人亲测有效. 奉上代码: /** * @Title: Conve ...

  7. 数字金额转换为大写人民币汉字

    // 数字金额转换为大写人民币汉字convertCurrency (money) {// 汉字的数字var cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', ' ...

  8. JS将数字金额转换为大写人民币汉字

    转载自 qubernet 博客 JS将数字金额转换为大写人民币汉字 function convertCurrency(money) {//汉字的数字var cnNums = new Array('零' ...

  9. 数字金额转换大写 先写个完整的然后将如零拾替换成零

    /*** 数字金额转换大写 先写个完整的然后将如零拾替换成零* @param n 数字* @return 中文大写数字*/public static String digitUppercase(dou ...

最新文章

  1. 动态规划之01 背包---Hd2602 Bone Collector
  2. GDCM:Torture的测试程序
  3. (备忘)打开office2010总是在配置进度
  4. python正十三边形_一起学python-opencv十三(直方图反向投影和模板匹配)
  5. linux多级反馈队列的实现,多级反馈队列调度算法的实现
  6. bzoj4850 [JSOI2016]灯塔
  7. Puppet基础篇5-如何建立master和agent之间的认证关系
  8. +搭建“记忆宫殿”的三款思维导图神器
  9. 关系抽取综述及相关顶会论文介绍
  10. 学会System Generator(19)增量调制(DM)编码解码
  11. HTML-错误页面介绍
  12. 景点评论爬虫之微博爬虫和携程爬虫
  13. 如何检测ajax完成且是成功的,检测ajax调用是否成功
  14. 优动漫PAINT入门小知识——拾色器功能
  15. Android 修改保持WLAN热点开启的时间与最大连接数
  16. 学习三部曲:WHAT、HOW、WHY
  17. windows xp 打开文件夹慢的解决
  18. 在windows和Deepin上安装Fedora33-KDE:一波三折、第九次成功的嘤嘤怪
  19. OpenHarmony介绍及相关资料
  20. Java|Joda-Time简化时间处理利器

热门文章

  1. 谷歌或收购“半条命”更新程序作者
  2. 孤独的7 虫蚀算-穷举法
  3. C语言学习,VScode下载、安装、环境变量配置、编写调试hello word
  4. AI应届博士生年薪八十万,贵吗?
  5. Android推送、智能心跳解决方案、手机休眠对心跳的影响
  6. 在vs中无法将文件 “文件” 复制到文件 “文件” ,“错误” 问题所在
  7. Python中使用PyQt5创建的窗口添加全局快捷键(鼠标离开窗口时也可执行)
  8. Ubuntu16.04编译Android8.0系统源码,并刷机 (Pixel XL)
  9. 【原创】用思维导图写测试点的几点说明
  10. Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation解决办法