加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift小数限制NumberFormatter

发布时间:2020-12-14 06:21:48 所属栏目:百科 来源:网络整理
导读://多个属性可能会冲突let numberFormate = NumberFormatter()//最大有效数字位数numberFormate.maximumSignificantDigits = 3//最小效数字位数numberFormate.minimumSignificantDigits = 3//最小小数位数//numberFormate.minimumFractionDigits = 1//最大小
//多个属性可能会冲突
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读