我从这里开始使用从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温度输出到单个小数位的最佳方法是什么?
答案 0 :(得分:8)
setprecision
操纵器的行为会有所不同,具体取决于您所处的模式。默认模式会使其设置显示的总位数。如果将显示模式设置为fixed
,然后将precision
设置为1,则它将始终显示小数点后的一位数。
std::cout << std::fixed << std::setprecision(1) << value;
答案 1 :(得分:2)
printf("My temperature is %2.1f\n", temperature)