我有一个 NSNumberFormatter 设置为使用有效数字进行格式化,因此它应该只显示正确显示值所需的十进制数字。
当它用于格式化7.0
时,它完全按预期工作并产生@"7"
,但是当它用于0.0
格式化格式化程序时,它会产生@"0.0"
而不是@"0"
预期的那样。
NSNumberFormatter *doubleValF = [[NSNumberFormatter alloc] init];
[doubleValF setNumberStyle:NSNumberFormatterDecimalStyle];
[doubleValF setRoundingMode:NSNumberFormatterRoundHalfUp];
doubleValF.maximumFractionDigits = 9;
doubleValF.minimumFractionDigits = 0;
doubleValF.minimumSignificantDigits = 0;
doubleValF.maximumSignificantDigits = 30;
[doubleValF setUsesSignificantDigits:YES];
double value1 = 0.0;
NSString *value1String = [doubleValF stringFromNumber:[NSNumber numberWithDouble:value1]];
double value2 = 7.0;
NSString *value2String = [doubleValF stringFromNumber:[NSNumber numberWithDouble:value2]];
NSLog(@"value1=%@", value1String);
NSLog(@"value2=%@", value2String);
当我运行此代码时,我得到以下输出:
2012-12-15 15:57:03.425 StackOverflowTests[41701:11303] value1=0.0
2012-12-15 15:57:03.426 StackOverflowTests[41701:11303] value2=7