Swift之NSNumberFormatter的简单使用

  我们在工程的时候,有时候会遇到这种需求,就是我们需要一定长度的数字,如果不足这个长度,前面补0或者其他数字,亦或者在后面填充其他字符,这时候我们就能用到NSNumberFormatter,接下来让我们看看代码怎么实现吧

let formatter1 = NSNumberFormatter()

var number = NSNumber(integer:16)

formatter1.formatWidth =5 //设置长度,如果不足这个长度,补零,如果超过的话,原样显示

formatter1.paddingCharacter ="0"//需要补充的字符

formatter1.paddingPosition =NSNumberFormatterPadPosition.BeforePrefix//是个枚举值,确定在哪个位置补充支付,前面还是后面

var str1 = formatter1.stringFromNumber(number)//现在str1的值是00016

为了实现这样一个代码,写了这么多代码,你可能感觉NSNumberFormatter也不过如此嘛,接下来让我们再看看他的一些其他的功能吧

NSNumberFormatter有这样一个属性numberStyle,可以重视他的格式

        let formatter =NSNumberFormatter()

        var number = NSNumber(integer:18238825318)

        formatter.locale = NSLocale(localeIdentifier: "zh-Hans")


        formatter.numberStyle =NSNumberFormatterStyle.NoStyle//原样输出

         var str = formatter. stringFromNumber(number) //此时str的值是 18238825318

        formatter.numberStyle =NSNumberFormatterStyle.DecimalStyle//字符分割输出

        str = formatter.stringFromNumber(number)//此时str的值是18,238,825,318

        

        formatter.numberStyle =NSNumberFormatterStyle.CurrencyStyle//前面添加货币后输出

        str = formatter.stringFromNumber(number)//¥18,238,825,318.00

        

        formatter.numberStyle =NSNumberFormatterStyle.PercentStyle//乘100后后面加%后输出

        str = formatter.stringFromNumber(number) //1,823,882,531,800%


        formatter.numberStyle =NSNumberFormatterStyle.ScientificStyle//以科学技术法的形式输出

        str = formatter.stringFromNumber(number)//1.8238825318E10

        

        formatter.numberStyle =NSNumberFormatterStyle.SpellOutStyle//以文字的形式输出,我个人感觉这个还是比较有用的

        str = formatter.stringFromNumber(number) //一百八十二亿三千八百八十二万五千三百一十八

      到这我们可能会感觉NSNumberFormatter有点用了,我认为实用的功能还有一个,有时我们会有这种需求,当有一个数字比较长的时候,我们想用分隔符分割一个,这样看着比较舒服,例如1000000000我们想以这样显示1_000_000_000,我个人认为用NSNumberFormatter会比较方便。下面让我们来看代码吧

        let formatter1 = NSNumberFormatter()

        var number1 = NSNumber(integer:1000000000)

        formatter1.usesGroupingSeparator = true//是否用分割符

        formatter1.groupingSeparator = "_"//分割符是什么

        formatter1.groupingSize = 3//使用分隔符的唱的呀

        var str1 = formatter1.stringFromNumber(number1)//此时str11_000_000_000


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值