setMaximumFractionDigits的问题
setMaximumFractionDigits不能与下面的代码一起使用。
NSString *input=@"80.90"; NSNumberFormatter *numberFormatter=[[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; [numberFormatter setMaximumFractionDigits:2]; NSNumber *number=[numberFormatter numberFromString:input];
数字转换为80.90000000000001。 但我已经把限制在2位小数。 那么,我怎样才能得到80.90的数字,而不是80.90000000000001
用于格式化数字的setMaximumFractionDigits
和setMinimumFractionDigits
。 或者换句话说,它在将一个数字转换成string(即stringFromNumber
。 所以当你使用numberFromString
时候它不会被应用
正如@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