Quand je fais ce qui suit, la sortie est une valeur entière:Pourquoi les usines renvoient-elles un entier?
double myvar = fabs(-5.01);
NSLog(@"%.f", myvar);
Faut-il 5.01?
Quand je fais ce qui suit, la sortie est une valeur entière:Pourquoi les usines renvoient-elles un entier?
double myvar = fabs(-5.01);
NSLog(@"%.f", myvar);
Faut-il 5.01?
Le .
(sans numéro après) en "%.f"
signifie un format avec une précision de 0 (qui pour les flottants, signifie arrondi à l'entier le plus proche). Vous probablement voulez « % f »
Voir http://www.cplusplus.com/reference/clibrary/cstdio/printf/ pour une description des spécificateurs (je rassemblerai les formats de type NSLog
sont un surensemble des printf
les)
Quelle est la sortie? Avez-vous essayé @"%f"
? Mais oui. Il devrait retourner 5.01. Il y a une chance que la précision soit éteinte puisque c'est le flottant, cependant.
S'il vous plaît utiliser
double myvar = fabs(-5.01);
NSLog(@"%.2f", myvar);
Comme %.f
signifie qu'après .
aucune valeur ne doit être présente donc si vous voulez 2 points décimaux, vous devez écrire %.2f
hAPPY cO DING ...