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
答案 0 :(得分:13)
setMaximumFractionDigits
和setMinimumFractionDigits
用于格式化数字。换句话说,在将数字转换为字符串即stringFromNumber
时,它会被应用。因此,当您使用numberFromString
答案 1 :(得分:2)
正如@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