C - l'Impression de flotter valeurs
J'ai un programme C++ qui prend les valeurs et les imprime les valeurs comme ceci:
getline(in,number);
cout << setw(10) << number << endl;
J'ai équivalent d'un programme C qui prend en valeurs et l'affiche comme suit:
fscanf(rhs, "%e", &number);
printf("%lf\n", number);
Mais alors que le programme C++ imprime, 0.30951
le programme C imprime 0.309510
. D'autres exemples: C++: 0.0956439
C: 0.095644
. Il semble imprimer les mêmes résultats, à condition que la valeur est de 7 chiffres, mais si de sa plus courte de 7 chiffres, il ajoute un supplément de 0 à la fin. Et si de son de plus de 7 chiffres, il arrondit à 6 chiffres. Je voudrais que le C résultats correspondent le programme C++. Toute aide serait appréciée.
Grâce.
Note: le nombre est un flotteur et le numéro sont lues à partir d'un fichier.
- Voulez-vous changer le C résultats pour correspondre à la C++ ou vice-versa?
- Correct, je veux le C résultat pour correspondre à la C++.
Vous devez vous connecter pour publier un commentaire.
Profiter de la longueur et de la précision des prescripteurs en C formaté impression des déclarations:
Imprime quatre décimales dans une "cellule" de six caractères de large.
Vous pouvez utiliser un caractère générique, soit la longueur ou la précision de fournir cette valeur au moment de l'exécution:
Profiter de la longueur et de la précision des prescripteurs en C++
iostream
sPermettra de résoudre votre problème, %lf est utilisé pour le double, %f est utilisé pour le flotteur, et %g est utilisé pour le flotteur lorsque vous souhaitez afficher toutes les décimales et couper les zéros.