J'essaie d'écrire un nombre avec deux décimales à l'aide de printf()
comme suit:
#include <cstdio>
int main()
{
printf("When this number: %d is assigned to 2 dp, it will be: 2%f ", 94.9456, 94.9456);
return 0;
}
Lorsque je lance le programme, j'obtiens le résultat suivant:
# ./printf
When this number: -1243822529 is assigned to 2 db, it will be: 2-0.000000
Pourquoi donc?
Merci.
Ce que tu veux c'est %.2f
, ne pas 2%f
.
Aussi, vous voudrez peut-être remplacer votre %d
avec un %f
;)
#include <cstdio>
int main()
{
printf("When this number: %f is assigned to 2 dp, it will be: %.2f ", 94.9456, 94.9456);
return 0;
}
Cela produira:
Lorsque ce numéro: 94.945600 est attribué à 2 dp, il sera: 94.95
Voir ici pour une description complète des options de formatage printf: printf
Utilisez: "%.2f"
Ou des variantes.
Voir la spécification POSIX pour une spécification faisant autorité pour les chaînes de format printf()
. Notez qu'il sépare les extras POSIX de la spécification C99 de base. Certains sites C++ apparaissent dans une recherche Google, mais certains ont au moins une réputation douteuse, à en juger par les commentaires vus ailleurs sur SO.
Puisque vous codez en C++, vous devriez probablement éviter printf()
et ses parents.
Pour %d
la partie fait référence à ceci Comment fonctionne ce programme? et pour les décimales, utilisez %.2f