J'ai la double valeur suivante: 0.000900137869045636
Que j'aimerais convertir en NSString
.
J'ai essayé le code suivant, mais quoi qu'il arrive, il arrondit la valeur à ceci: 0.000900138
[NSString stringWithFormat:@"%.20lf", [currentLocation coordinate].latitude];
Que dois-je faire pour conserver le double numéro tel quel?
Je vous remercie.
Créez un NSNumber en utilisant
NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];
Alors appelez
[myDoubleNumber stringValue];
Réponse courte: utilisez %.18lf
- testé avec 0.000900137869045633 -> 0.000900137869045639. Mais ne vous y trompez pas, cela est précis, cela ne fonctionne que parce que les chiffres sont arrondis.
Il ne semble pas y avoir de problème avec votre code, pour autant que je puisse voir: j'ai juste essayé ce qui suit et
int main(int argc, const char * argv[])
{
double foo = 0.000900137869045636;
NSLog([NSString stringWithFormat:@"%.20lf", foo]);
return 0;
}
la sortie du journal est:
2013-05-10 14:00:18.492 Test[71101:303]
0.00090013786904563598
Vous ne savez donc pas quel est votre problème, mais ce n’est pas dans la création de NSString.