NumberFormatter數字格式化
GitHub Demo: https://github.com/BaHui/BHNumberFormatterHelper
簡介
NSNumberFormatter: 數字格式化器, 可以將數字根據需要, 進行樣式的格式化, 如:
12,346,789.44
/$12,346,789.45
, 或者對數字進行向上/向下取值
, 以及對小數位數的保留.
方法測試
- (void)viewDidLoad {
[super viewDidLoad];
double doubleValue = 12346789.44421;
NSLog(@"原始: %f", doubleValue);
// 無格式, 四捨五入
NSString *roundNoFloatsString = [NSNumberFormatter roundNoStyleWithDoubleValue:doubleValue scale:2];
NSLog(@"無格式, 四捨五入-> %@", roundNoFloatsString); // 輸出: 無格式, 四捨五入-> 12346789.44
// 向上取整(進)
NSString *ceilingNoFloatsString = [NSNumberFormatter ceilingNoStyleWithDoubleValue:doubleValue scale:3];
NSLog(@"無格式, 向上取值-> %@", ceilingNoFloatsString); // 輸出: 無格式, 向上取值-> 12346789.445
// 向下取整(舍)
NSString *floorNoFloatsString = [NSNumberFormatter floorNoStyleWithDoubleValue:doubleValue scale:2];
NSLog(@"無格式, 向下取值-> %@", floorNoFloatsString); // 輸出: 無格式, 向下取值-> 12346789.44
// 逗號間隔, 保留`scale`位小數, 四捨五入
NSString *commaSeparatedString = [NSNumberFormatter roundCommaSeparateWithDoubleValue:doubleValue scale:2];
NSLog(@"逗號分割-> %@", commaSeparatedString); // 輸出: 逗號分割-> 12,346,789.44
// 逗號間隔, 保留`scale`位小數, 向上取值 (進)
NSString *ceilingCommaSeparatedString = [NSNumberFormatter ceilingCommaSeparateWithDoubleValue:doubleValue scale:2];
NSLog(@"逗號分割, 向上取值-> %@", ceilingCommaSeparatedString); // 輸出: 逗號分割, 向上取值-> 12,346,789.45
// 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
NSString *floorCommaSeparatedString = [NSNumberFormatter floorCommaSeparateWithDoubleValue:doubleValue scale:3];
NSLog(@"逗號分割, 向下取值-> %@", floorCommaSeparatedString); // 輸出: 逗號分割, 向下取值-> 12,346,789.444
// $/¥字首, 逗號間隔, 保留`scale`位小數, 四捨五入
NSString *roundCurrencyCommaSeparateString = [NSNumberFormatter roundCurrencyCommaSeparateWithDoubleValue:doubleValue scale:2];
NSLog(@"$/¥字首, 逗號分割, 向下取值-> %@", roundCurrencyCommaSeparateString); // 輸出: $/¥字首, 逗號分割, 向下取值-> $12,346,789.44
// $/¥字首, 逗號間隔, 保留`scale`位小數, 向上取值 (進)
NSString *ceilingCurrencyCommaSeparateString = [NSNumberFormatter ceilingCurrencyCommaSeparateWithDoubleValue:doubleValue scale:2];
NSLog(@"$/¥字首, 逗號分割, 向下取值-> %@", ceilingCurrencyCommaSeparateString); // 輸出: $/¥字首, 逗號分割, 向下取值-> $12,346,789.45
// $/¥字首, 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
NSString *floorCurrencyCommaSeparateString = [NSNumberFormatter floorCurrencyCommaSeparateWithDoubleValue:doubleValue scale:2];
NSLog(@"$/¥字首, 逗號分割, 向下取值-> %@", floorCurrencyCommaSeparateString); // 輸出: $/¥字首, 逗號分割, 向下取值-> $12,346,789.44
// %字尾, 逗號間隔, 保留`scale`位小數, 四捨五入
NSString *roundPercentCommaSeparateString = [NSNumberFormatter roundPercentCommaSeparateWithDoubleValue:doubleValue scale:1];
NSLog(@"百分號字尾, 逗號間隔, 保留`scale`位小數, 四捨五入-> %@", roundPercentCommaSeparateString);// 輸出: %字尾, 逗號間隔, 保留`scale`位小數, 四捨五入-> 1,234,678,944.4%
// %字尾, 逗號間隔, 保留`scale`位小數, 向上取值 (進)
NSString *ceilingPercentCommaSeparateString = [NSNumberFormatter ceilingPercentCommaSeparateWithDoubleValue:doubleValue scale:1];
NSLog(@"百分號字尾, 逗號間隔, 保留`scale`位小數, 向上取值-> %@", ceilingPercentCommaSeparateString);// 輸出: %字尾, 逗號間隔, 保留`scale`位小數, 向上取值-> 1,234,678,944.5%
// %字尾, 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
NSString *floorPercentCommaSeparateString = [NSNumberFormatter floorPercentCommaSeparateWithDoubleValue:doubleValue scale:1];
NSLog(@"百分號字尾, 逗號間隔, 保留`scale`位小數, 向下取值-> %@", floorPercentCommaSeparateString);// 輸出: %字尾, 逗號間隔, 保留`scale`位小數, 向下取值-> 1,234,678,944.4%
}
格式化方法
#pragma mark - 無格式
// Return: 無格式, 四捨五入
+ (NSString *)roundNoStyleWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: 無格式, 向上取值 (進)
+ (NSString *)ceilingNoStyleWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: 無格式, 向下取值 (舍)
+ (NSString *)floorNoStyleWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
#pragma mark - 逗號間隔
// Return: 逗號間隔, 保留`scale`位小數, 四捨五入
+ (NSString *)roundCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: 逗號間隔, 保留`scale`位小數, 向上取值 (進)
+ (NSString *)ceilingCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
+ (NSString *)floorCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
#pragma mark - $/¥字首, 逗號間隔 (字首符號有本地化自動選擇)
// Return: $/¥字首, 逗號間隔, 保留`scale`位小數, 四捨五入
+ (NSString *)roundCurrencyCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: $/¥字首, 逗號間隔, 保留`scale`位小數, 向上取值 (進)
+ (NSString *)ceilingCurrencyCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: $/¥字首, 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
+ (NSString *)floorCurrencyCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
#pragma mark - %字尾, 逗號間隔
// Return: %字尾, 逗號間隔, 保留`scale`位小數, 四捨五入
+ (NSString *)roundPercentCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: %字尾, 逗號間隔, 保留`scale`位小數, 向上取值 (進)
+ (NSString *)ceilingPercentCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
// Return: %字尾, 逗號間隔, 保留`scale`位小數, 向下取值 (舍)
+ (NSString *)floorPercentCommaSeparateWithDoubleValue:(double)doubleValue scale:(NSInteger)scale;
交流與建議
相關文章
- JavaScript格式化數字JavaScript
- Delphi Format 格式化數字ORM
- 數字格式化的 js 庫JS
- Python 數字運算及格式化Python
- Golang 對金融數字的格式化Golang
- Objc中格式化數字的技巧OBJ
- 簡單介紹python format格式化和數字格式化PythonORM
- Java™ 教程(格式化數字列印輸出)Java
- JS中的數字格式化和大位數縮寫JS
- iview 使用render渲染InputNumber,並格式化數字View
- DecimalFormat數字格式化用法“0”和“#”的區別DecimalORM
- JavaScript數字千分位格式化JavaScript
- jQuery文字框輸入數字彈出格式化層jQuery
- mysql格式化小數保留小數點後兩位(小數點格式化)MySql
- android kotlin 小數保留格式化位數AndroidKotlin
- 格式化輸出變數工具變數
- L1-042 日期格式化 分數 5
- 猜數字
- 數字序列
- 數字藏品
- 數字宋朝
- 數字加密加密
- jquery金額數字轉為大寫數字jQuery
- 中文數字阿拉伯數字相互轉換
- 衡量數字發展:事實和數字2020
- 數字格式字串轉數字保留後面0字串
- 數字,小數點正則,一段話提取數字
- 安全基礎:數字信封、數字簽名、數字證書(加簽驗籤,加密解密)加密解密
- excel表格數字怎麼變成正常數字 數字太長後面變成000Excel
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- 談談我的「數字文具盒」 - 數字基建
- 數字化能做什麼?如何數字化轉型?
- 人人在說數字化,年年再提數字化
- python將中文數字轉化成阿拉伯數字Python
- Python 英文的月份轉數字及數字轉英文Python
- 幸運數字
- 取有效數字
- 跳躍數字