Tengo el número doble en un formato como 34.123456789
. ¿Cómo puedo cambiarlo a 34.123?Dobles redondos en Objective-C
Solo quiero 3 dígitos después del punto decimal.
Tengo el número doble en un formato como 34.123456789
. ¿Cómo puedo cambiarlo a 34.123?Dobles redondos en Objective-C
Solo quiero 3 dígitos después del punto decimal.
Puede imprimirlo con 3 decimales con [NSString stringWithFormat:@"%.3f",d]
.
Puede aproximadamente redonda con round(d*1000)/1000
, pero por supuesto esto no se garantiza que sea exacta desde 1000 no es una potencia de 2.
que puede utilizar:
#include <math.h>
:
dbl = round (dbl * 1000.0)/1000.0;
Hemos de tener en cuenta que los flotadores y los dobles son tan cerca como una aproximación del tipo subyacente puede proporcionar. Puede no ser exacto.
La solución aprobada tiene un pequeño error tipográfico. Falta el "%".
Aquí está la solución sin el error tipográfico y con un pequeño código adicional.
double d = 1.23456;
NSString* myString = [NSString stringWithFormat:@"%.3f",d];
myString será "1.234".
puede editar respuestas incorrectas ... –
¿Y no obtener los votos? –
Si desea hacer
34.123456789 -> 34.123
34.000000000 -> 34 not 34.000
Puede utilizar NSNumberFormatter
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setMaximumFractionDigits:3]; // 3 is the number of digits
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.123456789]]); // print 34.123
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.000000000]]); // print 34
primero hizo el trabajo para mí ... :( pero tal vez sólo para estúpida ...: D Usted – cV2