2010-03-18 22 views
8

Tengo un número doble y me gustaría convertirlo en cuerda.cacao - conversión de un doble a cadena

El número es, por ejemplo, algo así como

24,043333332154465777 ...

pero si puedo convertir a cadena usando algo así como

NSString *myString = [NSString stringWithFormat:@"%f", myDouble]; 

La cadena es sólo

24.043333

¿cómo obtengo una cadena completa que corresponde al número doble completo? ¿Qué otros métodos tengo para convertir esto?

Respuesta

37

Otra opción, ya que preguntas para otras formas en su comentario a la respuesta de mipadi:

Crear NSNumber usando NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];

A continuación, llame [myDoubleNumber stringValue];

A partir de los documentos:

Devuelve el valor del receptor como una cadena legible por humanos, creada invocando descriptionWithLocale: donde locale es nil.

+0

ambos métodos - el tuyo y el de mipadi - son perfectos para la conversión, pero por alguna razón, mipadi me dio una cadena que era ligeramente diferente del número original. Tu me das el mismo número ... gracias. – SpaceDog

12

Puede pasar un especificador de formato de ancho al stringWithFormat.

NSString *myString = [NSString stringWithFormat:@"%.20f", myDouble]; 

formateará myDouble con 20 posiciones decimales.

+0

1 (no se añade la cotización de cierre de la cadena de formato, aunque) –

+0

gracias !!! Solo una pregunta final. ¿Es esta la única forma de convertir un doble en una cuerda? Quiero decir, usando stringWithFormat? – SpaceDog

+1

@Hafthor: No hay necesidad de 'lf'. 'f' es el especificador de formato para un doble, como se indica en la documentación de la cadena Cocoa (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265) y esta pregunta (http://stackoverflow.com/a/4264154/28804). – mipadi

21
[NSString stringWithFormat:@"%.20f", myDouble]; 

o

@(myDouble).stringValue; 
2

[NSString stringWithFormat: @ "% 0f", MiDouble];

Uso esto para ningún valor decimal

Cuestiones relacionadas