前端之家收集整理的这篇文章主要介绍了
swift小数限制NumberFormatter,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- //多个属性可能会冲突
- let numberFormate = NumberFormatter()
-
- //最大有效数字位数
- numberFormate.maximumSignificantDigits = 3
- //最小效数字位数
- numberFormate.minimumSignificantDigits = 3
-
- //最小小数位数
- //numberFormate.minimumFractionDigits = 1
- //最大小数点位数
- //numberFormate.maximumFractionDigits = 2
- //最大整数位数
- //numberFormate.maximumIntegerDigits = 2 //12.002 -> "2"
- //最小整数位数 不够补“0”
- //numberFormate.minimumIntegerDigits = 2
-
- //numberFormate.maximum = NSNumber(value: 1)
- //numberFormate.minimum = NSNumber(value: 1)
-
- //有四舍五入属性:
- let numformate = NumberFormatter()
- numformate.string(from: 11.6)
-
- others:
- numberFormate.allowsFloats
- numberFormate.usesSignificantDigits
- numberFormate.string(from: 1.100000010001)
-
-
- 示例:
- /* 小数限制:2位小数,且要求当小于1时,必须留一位小数 */
- func fomate(_ numberStr: String) -> String {
- let number = NSNumber(value: Double(numberStr) ?? 0)
- if number.doubleValue == 0 {
- return "0"
- }
- let formate = NumberFormatter()
- //最小整数位
- formate.minimumIntegerDigits = 1
- //最大小数
- formate.maximumFractionDigits = 2
- if fabs(number.doubleValue) < 0.01 {
- //最小小数位
- formate.minimumFractionDigits = 1
- //最大有效数字位
- formate.maximumSignificantDigits = 1
- }
- //formate.paddingCharacter = ""
- return formate.string(from: number) ?? "0"
- }
- //效果:
- fomate("-1.000109123456")//-1
- fomate("1.009109123456")//1.01
- fomate("0.000009823456")//0.00001