swift下float转string,如何控制精度
2020-07-21 本文已影响0人
本帅不良
上代码
let formatter = NumberFormatter.init()
formatter.maximumFractionDigits = 1
formatter.minimumFractionDigits = 0
let sizeStr = formatter.string(from: NSNumber.init(value: size)) ?? "0"
可以看出,我们使用NumberFormatter
来控制精度,分别设置了最大、最小精度。
然后使用formatter.string(from: )
方法得到字符串。
效果如下图:
![](https://img.haomeiwen.com/i3255919/55d0e502c0774670.jpg)
注意:"B","K","M"是工程中的单位,此处代码未体现。
可以看出,此方法相对OC的优点在于:能灵活控制精度,而不会像OC一样,无论是否需要,始终精确到固定的小数点位数。
Objective-C实现
NSString *sizeStr = [NSString stringWithFormat:@"%.1f",size];
%.1f
表示精确到小数点后一位。
引申
OC中应该也有NumberFormatter
类,有兴趣的可以查看苹果官方文档。