zoukankan      html  css  js  c++  java
  • NSNumberFormatter 数字格式化输出

    最近搞数据展示,需要将数字展示为用千分号分割的字符串,让我好找呀,结果还是被我找到了。

    在iOS中我们可以通过NSDateFormatter来设置输出NSDate的格式。相比NSDateFormatter的大名鼎 鼎,NSNumberFormatter好像知道的人就不多了。其实通过NSNumberFormatter,同样可以设置NSNumber输出的格式。 例如如下代码:

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    formatter.numberStyle = NSNumberFormatterDecimalStyle;
    NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt:123456789]];
    NSLog(@"Formatted number string:%@",string);
    输出结果为:[1223:403] Formatted number string:123,456,789

    其中NSNumberFormatter类有个属性numberStyle,它是一个枚举型,设置不同的值可以输出不同的数字格式。该枚举包括:
    enum {
        NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,
        NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,
        NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,
        NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,
        NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,
        NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle
    };
    typedef NSUInteger NSNumberFormatterStyle;
    各个枚举对应输出数字格式的效果如下:
    [1243:403] Formatted number string:123456789
    [1243:403] Formatted number string:123,456,789
    [1243:403] Formatted number string:¥123,456,789.00
    [1243:403] Formatted number string:-539,222,988%
    [1243:403] Formatted number string:1.23456789E8
    [1243:403] Formatted number string:一亿二千三百四十五万六千七百八十九

    其中第三项和最后一项的输出会根据系统设置的语言区域的不同而不同。

     
     
  • 相关阅读:
    设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
    数组模拟栈(C语言)
    JDBC数据源连接池的配置和使用实例
    servlet 具体实现
    MySQL查询数据表中数据记录(包括多表查询)
    java开发中的23中设计模式
    eclipse使用和优化配置
    将博客搬至CSDN
    itext poi 学习之旅 (3)读取数据库信息并由excel展现出来
    itext poi 学习之旅 (2)创建excel
  • 原文地址:https://www.cnblogs.com/lisen-lisen/p/4757645.html
Copyright © 2011-2022 走看看