2010-03-18 14 views
8

J'ai un double nombre et je voudrais le convertir en chaîne.cacao - convertir un double en chaîne

Le nombre est, par exemple, quelque chose comme

24,043333332154465777 ...

mais si je le convertir en chaîne en utilisant quelque chose comme

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

La chaîne est juste

24.043333

Comment puis-je obtenir une chaîne complète correspondant à l'ensemble du nombre double? Quelles autres méthodes ai-je pour convertir cela?

Répondre

37

Une autre option, puisque vous avez demandé d'autres moyens de votre commentaire à la réponse de mipadi:

Créer un NSNumber en utilisant NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];

Ensuite, appelez [myDoubleNumber stringValue];

De la documentation:

Renvoie la valeur du destinataire sous la forme d'une chaîne lisible par l'utilisateur, créée en appelant descriptionWithLocale: où locale est nul.

+0

les deux méthodes - la vôtre et mipadi - sont parfaites pour la conversion, mais pour une raison quelconque, mipadi m'a donné une chaîne qui était légèrement différente du nombre original. Vous me donnez le même numéro ... merci. – SpaceDog

12

Vous pouvez transmettre un spécificateur de format de largeur à stringWithFormat.

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

formate myDouble avec 20 décimales.

+0

+1 (Faites ajouter la citation de clôture à la chaîne de format, bien que) –

+0

merci !!! Juste une dernière question. Est-ce la seule façon de convertir un double en chaîne? Je veux dire, en utilisant stringWithFormat? – SpaceDog

+1

@Hafthor: Pas besoin de 'lf'. 'f' est le spécificateur de format pour un double, comme indiqué dans la documentation de la chaîne Cocoa (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265) et cette question (http://stackoverflow.com/a/4264154/28804). – mipadi

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

ou

@(myDouble).stringValue; 
2

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

Utilisez cette valeur décimale sans

Questions connexes