NSNumber
會做一些快速和骯髒的格式爲你,
NSNumber * five = [NSNumber numberWithDouble:3+2];
NSNumber * twoThirds = [NSNumber numberWithDouble:2/3.0];
NSNumber * mPi = [NSNumber numberWithDouble:M_PI];
NSLog(@"%@", [five stringValue]);
NSLog(@"%@", [twoThirds stringValue]);
NSLog(@"%@", [mPi stringValue]);
2011-11-17 21:52:12.621精密[13359:903] 5
2011-11-17 21:52:12.624精密[13359:903] 0.6666666666666666
2011-11- 17 21:52:12.625精密[13359:903] 3.141592653589793
,但你確實應該使用NSNumberFormatter
:
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setUsesSignificantDigits:YES];
NSLog(@"%@", [formatter stringFromNumber:five]);
NSLog(@"%@", [formatter stringFromNumber:twoThirds]);
[formatter setMaximumSignificantDigits:16];
NSLog(@"%@", [formatter stringFromNumber:mPi]);
2011-11-17 21:52:12.629精密度[13359:903] 5
2011-11-17 21:52:12.630精度[13359:903] 0.666667
2011-11-17 21:52:12.630精度[13359:903] 3.14159265358979
string format specifiers也允許變精度;小數點後用星號代替數字:
int precision = 3;
NSLog(@"%.*f", precision, 2/3.0);
'2/3'不需要'.1f'。 –
你打算如何區分你的代碼? –