SwiftUI 格式化数字方法,Double转String去除0的占位,防止科学计数法
文章摘要
HeoGPT
这篇文章介绍了SwiftUI中常用的数字和文本转换方法,以及常用的数据格式。作者还分享了使用NumberFormatter来格式化数字的方法,可以获取一个自动省略小数点后面的0并且不会变成科学计数法的文本。
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉数字和文本之间的转化是我们经常用到的,例如TextField只能是String的Bing(当然Xocode13 for iOS15/mac os 12以上已经支持其他格式)。
常用的转换形式
我们经常使用字符串格式说明符来更改格式,例如
1 | import Foundation |
在SwiftUI的Text中我们也可以使用specifier来格式化显示的文本
1 | Text("\(number, specifier: "%.2f")") |
常用的数据格式
一般来说我会常用%.2f
这种固定小数点位数的,代表小数点后固定两位。整数直接转基本没什么问题。麻烦就在于Double转String时,去除小数点后多余的0。例如使用%f
会产生多余占位符,使用%g
当数字很大时会用科学技术法表示。
1 | var number: Double = 123212434234 |
格式化数字
直接用format似乎不太行?除了这个方式还可以使用NumberFormatter来格式化数字。
我们新建一个函数
1 | func doubleToString(num: Double) -> String { |
使用这个函数来代替转换
1 | var number: Double = 123212434234.12 |
可以获取一个自动省略小数点后面的0并且不会变成科学计数法的文本。
参考
Swift - How to remove a decimal from a float if the decimal is equal to 0?
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果