10
votes

Cocao - Conversion d'un double en chaîne

J'ai un chiffre double et je voudrais le convertir en chaîne.

Le nombre est, par exemple, quelque chose comme

24.043333332154465777 ...

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

la chaîne est juste

24.043333

Comment Est-ce que je reçois une chaîne complète le correspond à tout le double numéro? Quelles autres méthodes dois-je convertir cela?


0 commentaires

5 Réponses :


13
votes

Vous pouvez transmettre un spécificateur de format de largeur sur StringwithFormat CODE>.

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


2 commentaires

Merci!!! Juste une dernière question. Est-ce le seul moyen de convertir un double en chaîne? Je veux dire, en utilisant stringwithformat?


@Afthor: Pas besoin de lf . f est le spécificateur de format pour un double, comme indiqué dans la documentation de cordes de cacao ( développeur.apple.com/library/mac/documentation/cocoa/concept ual / ... ) Et ceci Question ( Stackoverflow.com/a/4264154/28804 ).



41
votes

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

créer un nsnumber à l'aide de nsnumber * mydoublenumber = [Numéro de norme Numérovithdouble: mydouble];

Appelez ensuite [mydoublenumber StringValue];

de la DOCS:

Retourne la valeur du récepteur en tant que chaîne lisible par l'homme, créée en invoquant descriptionWithLocale: où locale est nulle.


1 commentaires

Les deux méthodes - le vôtre et les MiPadi - sont parfaits pour la conversion, mais pour une raison quelconque, Mipadi m'a donné une chaîne légèrement différente du nombre d'origine. Tu me donnes le même numéro ... merci.



2
votes

Il y a aussi Nsnumberformater .


0 commentaires

23
votes
@(myDouble).stringValue;

0 commentaires

2
votes

[Nstring StringwithFormat: @ "%. 0f", mydouble];

Utilisez ceci sans valeur décimale


0 commentaires