Swift之NSNumberFormatter的简单使用

来源:互联网 发布:大麻烟淘宝黑话叫什么 编辑:程序博客网 时间:2024/06/05 11:08

  我们在工程的时候,有时候会遇到这种需求,就是我们需要一定长度的数字,如果不足这个长度,前面补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


0 0
原创粉丝点击