[Rà‰SOLU] cos() pas le même résultat en string et en double
Bonjour à tous
Dans mon projet je suis forcé d'utiliser la formule cos(). Seulement, j'ai remarqué que le résultat retourné en string ou en double n'est pas le même. Exemple avec un simple calcul :
NSNumber *operation;
operation = [NSNumber numberWithDouble:cos(x.doubleValue)];
NSLog(@%f, %@", operation.doubleValue, operation.stringValue);
Prenons x = 90. Mon log dit : "0.000000, 6.123233995736766e-17"
C'est bizarre non ? Existe-t-il une solution pour que le résultat soit le même en string que en double ? Parce qu'il serait plus pratique d'utiliser du string pour moi que du double.
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
cos() fonctionne dans tous les cas avec des doubles.
Là , on dirait plutôt que tu as des problèmes de conversion entre double / NSNumber / NSString.
Merci Ceroce pour ta réponse. Oui c'est cela en fait j'ai un peu mal interprété mon problème. Lorsque je convertis "operation" en double il me sort un nombre non scientifique. Alors qu'en string, j'ai un nombre très petit écrit en notation scientifique. Est-ce possible de convertir "operation" en string pour que celui-ci soit noté comme la notation en double ?
Il est dit dans la doc qu'un NSNumber initialisé avec un double à le format %0.16g
Donc, tout semble normal, aux erreurs d'arrondi près ...
On en parle ICI
Merci mpergand pour ta réponse.
Ha oui j'avais oublié cette initialisation du NSNumber.
De toute façon pour afficher la valeur double dans un string il suffit d'un simple stringWithFormat :
Mais cela m'a paru bizarre ce changement de valeur entre string et double mais comme je l'ai dit, j'avais oublié l'initialisation du NSNumber.
Merci à tous !