设定精度

时间:2010-07-05 22:55:11

标签: c++

我从这里开始使用从F到C的简单温度转换程序。我希望C温度可以舍入到小数点后1/10。我有5个温度转换,可以手动设置每个温度的精度。但也许这不是最佳做法?

位置0的华氏温度为55,摄氏温度为12.8,我不得不使用setprecision(3)。

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

对于第二个位置,华氏温度为44,产生的C temp仅为小数点左边的1位数,因此我必须将精度更改为2.

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

我使用double作为我的变量类型。而不是通过并改变预期答案的精度,将C温度输出到单个小数位的最佳方法是什么?

2 个答案:

答案 0 :(得分:8)

setprecision操纵器的行为会有所不同,具体取决于您所处的模式。默认模式会使其设置显示的总位数。如果将显示模式设置为fixed,然后将precision设置为1,则它将始终显示小数点后的一位数。

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

答案 1 :(得分:2)

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