2010-08-13 12 views

Respuesta

21

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.

+1

primero hizo el trabajo para mí ... :( pero tal vez sólo para estúpida ...: D Usted – cV2

7

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.

6

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".

+5

puede editar respuestas incorrectas ... –

+2

¿Y no obtener los votos? –

0

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 
Cuestiones relacionadas