根据数字的值自动显示一定数量的小数点
Automated way to show up to a certain number of decimal points depending on value of number
我正在处理生成的报告,这些报告的值有时是整数,有时是 1 位小数,有时是 2 位小数。我想找到一种方法来显示这些带有尽可能少的小数点的数字。所以 1 总是 1 而不是 1.0 或 1.00 而 2.5743 将是 2.57。有没有一种方法可以在 iOS SDK 中自动执行此斜线操作?
使用 NSNumberFormatter
并将 maximumFractionDigits
设置为 2。
@import Foundation;
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;
NSLog(@"%@", [formatter stringFromNumber:@(1)]);
NSLog(@"%@", [formatter stringFromNumber:@(1.0)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.5743)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.5)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.7)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.699)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.71001)]);
}
return 0;
}
输出:
2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.57
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.5
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.71
我正在处理生成的报告,这些报告的值有时是整数,有时是 1 位小数,有时是 2 位小数。我想找到一种方法来显示这些带有尽可能少的小数点的数字。所以 1 总是 1 而不是 1.0 或 1.00 而 2.5743 将是 2.57。有没有一种方法可以在 iOS SDK 中自动执行此斜线操作?
使用 NSNumberFormatter
并将 maximumFractionDigits
设置为 2。
@import Foundation;
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;
NSLog(@"%@", [formatter stringFromNumber:@(1)]);
NSLog(@"%@", [formatter stringFromNumber:@(1.0)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.5743)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.5)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.7)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.699)]);
NSLog(@"%@", [formatter stringFromNumber:@(2.71001)]);
}
return 0;
}
输出:
2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.57
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.5
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.71