IOS 數值輸出格式處理

經過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,它是一個枚舉型,設置不一樣的值能夠輸出不一樣的數字格式。該枚舉包括:
spa

 

enum {code

    NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle,orm

    NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle,ci

    NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle,get

    NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle,string

    NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle,it

    NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyleform

y
   
class

    NSNumberFormatterRoundCeiling =
kCFNumberFormatterRoundCeiling,//四捨五入,原值2.7999999999,直接輸出3 

    NSNumberFormatterRoundFloor =
kCFNumberFormatterRoundFloor,//保留小數輸出2.8 正是想要的

    NSNumberFormatterRoundDown =
kCFNumberFormatterRoundDown,//加上了人民幣標誌,原值輸出¥2.8

    NSNumberFormatterRoundUp =
kCFNumberFormatterRoundUp,//自己數值乘以100後用百分號表示,輸出280%

    NSNumberFormatterRoundHalfEven =
kCFNumberFormatterRoundHalfEven,//原值表示,輸出2.799999999E0

    NSNumberFormatterRoundHalfDown =
kCFNumberFormatterRoundHalfDown,//原值的中文表示,輸出二點七九九九。。。。

    NSNumberFormatterRoundHalfUp =
kCFNumberFormatterRoundHalfUp //原值中文表示,輸出第三

};

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:一億二千三百四十五萬六千七百八十九

其中第三項和最後一項的輸出會根據系統設置的語言區域的不一樣而不一樣

若是上面的數值類型使用不方即可以使用C函數:

float num = 1.4999;
ceil(num)返回不小於x的最小整數值(而後轉換爲double型)。//2.000000
floor(num)返回不大於x的最大整數值。//1.000000
round(num)返回x的四捨五入整數值。//1.000000
相關文章
相關標籤/搜索