2010-07-05 75 views
0

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

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

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

对于该第二位置华氏温为44,得到的C温度仅1位左十进制的,所以我不得不精度更改为2

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

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

回答

8

setprecision操纵取决于你碰巧哪一种模式是在表现不同,默认的模式导致其设定的显示数字的总数。如果将显示模式设置为fixed,则将precision设置为1,它将始终显示小数点后的一位数字。

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

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