Problemas con setMaximumFractionDigits

setMaximumFractionDigits no funciona con el siguiente código.

NSString *input=@"80.90"; NSNumberFormatter *numberFormatter=[[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; [numberFormatter setMaximumFractionDigits:2]; NSNumber *number=[numberFormatter numberFromString:input]; 

el número se convierte a 80.90000000000001. pero he puesto un límite a 2 decimales. Entonces, ¿cómo consigo el número como 80.90, en lugar de 80.90000000000001

setMaximumFractionDigits y setMinimumFractionDigits utilizados para formatear un número. o en otras palabras, se aplica al convertir un número en una cadena, es decir, stringFromNumber . Entonces no se aplicará cuando esté usando numberFromString

Como @SunilPandey mencionó -setMaximumFractionDigits se usa para formatear un número. Entonces puedes hacerlo así:

 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); 

Salida:

NumberString: 80.99

Intereting Posts