setMaximumFractionDigits不能使用以下代码。
NSString *input=@"80.90";
NSNumberFormatter *numberFormatter=[[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSNumber *number=[numberFormatter numberFromString:input];
number被转换为80.90000000000001。但我将小数位数限制为2位。那么,我怎样才能得到80.9,而不是80.90000000000001
发布于 2012-05-13 17:54:38
setMaximumFractionDigits
和setMinimumFractionDigits
习惯于格式化数字。或者换句话说,它是在将数字转换为字符串时应用的,例如stringFromNumber
。因此,当您使用numberFromString
时,它不会被应用
发布于 2012-05-13 18:02:50
正如@SunilPandey提到的,-setMaximumFractionDigits
用于格式化数字。所以你可以这样做:
float input = 80.99999;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setRoundingMode: NSNumberFormatterRoundDown];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *numberString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:input]];
[formatter release];
NSLog(@"NumberString: %@", numberString);
输出:
NumberString: 80.99
https://stackoverflow.com/questions/10570756
复制相似问题