2010-07-05 3 views
0

Je commence ici avec un simple programme de conversion de température de F à C. Je voudrais que la température C arrondisse à la décimale 1/10. J'ai 5 conversions de température et peux définir manuellement la précision pour chacun. Mais peut-être que ce n'est pas une bonne pratique?réglage de précision

La température Fahrenheit pour l'emplacement 0 est de 55 et pour obtenir une température Celsius de 12,8, j'ai dû utiliser setprecision (3).

cout<<"location 1 = "<<location1f<<" F "<<setprecision(3)<<location01<<" C \n"; 

Pour cette deuxième position la température Fahrenheit était 44 et la température de C résultant est seulement 1 chiffre à gauche de la virgule décimale, donc je devais changer la précision 2.

cout<<"location 2 = "<<location2f<<" F "<<setprecision(2)<<location2c<<" C \n"; 

J'utilise double comme mon type variable. Au lieu de passer en revue et de changer la précision de la réponse attendue, quelle est la meilleure façon de produire la température C à une seule décimale?

Répondre

8

Le manipulateur setprecision se comporte différemment selon le mode que vous soyez. Le mode par défaut amène à définir le nombre total de chiffres affichés. Si vous réglez le mode d'affichage sur fixed puis sur precision sur 1, il affichera toujours un chiffre après le point décimal.

std::cout << std::fixed << std::setprecision(1) << value;

2
printf("My temperature is %2.1f\n", temperature)