Я читал это и то . Я хочу именно это:
1.4324 => «1.43»
Я читал это и то . Я хочу именно это:
1.4324 => «1.43»
Я читал это и то . Я хочу именно это:
1.4324 => «1.43»
9.4000 => «9,4»
43.000 => «43»9.4 => «9,40» (неверно)
43.000 => "43.00" (неверно)В обоих вопросах ответы указывают на
NSNumberFormatter
. Так что этого должно быть легко достичь, но не для меня.- (void)viewDidLoad { [super viewDidLoad]; UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 20)]; NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init]; [doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle]; [doubleValueWithMaxTwoDecimalPlaces setPaddingPosition:NSNumberFormatterPadAfterSuffix]; [doubleValueWithMaxTwoDecimalPlaces setFormatWidth:2]; NSNumber *myValue = [NSNumber numberWithDouble:0.01234]; //NSNumber *myValue = [NSNumber numberWithDouble:0.1]; myLabel.text = [doubleValueWithMaxTwoDecimalPlaces stringFromNumber:myValue]; [self.view addSubview:myLabel]; [myLabel release]; myLabel = nil; [doubleValueWithMaxTwoDecimalPlaces release]; doubleValueWithMaxTwoDecimalPlaces = nil; }
Я также пробовал это с
NSString *resultString = [NSString stringWithFormat: @"%.2lf", [myValue doubleValue]]; NSLog(@"%@", resultString);
Итак, как я могу отформатировать двойные значения максимум с двумя десятичными знаками? Если последняя позиция содержит ноль, ноль следует опустить.
Решение:
NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init]; [doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle]; [doubleValueWithMaxTwoDecimalPlaces setMaximumFractionDigits:2]; NSNumber *myValue = [NSNumber numberWithDouble:0.01234]; NSLog(@"%@",[doubleValueWithMaxTwoDecimalPlaces stringFromNumber:myValue]]; [doubleValueWithMaxTwoDecimalPlaces release]; doubleValueWithMaxTwoDecimalPlaces = nil;