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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...