2010-07-05 74 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)