我試圖執行一個操作,將從用戶的直徑輸入中找到一些披薩片(家庭作業分配),但我的問題是,C++在操作過程中保持四捨五入。這裏的如何防止操作中的小數舍入?
//Calculates the number of slices that can be obtained using the diameter from the user's input
sliceNumber = (pi *(pow((pizzaDiameter/ 2.0) , 2.0)))/sliceArea;
//Outputs the number of slices that can be cut, accurate to 1 decimal point using the command "setprecision"
cout << "The number of slices your pizza can be divided into is ";
cout << setprecision(2) << sliceNumber << endl;
最終的結果應該四捨五入至小數點後一位的代碼,因爲它是被迫與setprecision這是正確的。但是當我用計算器自己解決問題時,結果有點不同。例如,我會在程序中輸入直徑10,它將輸出5.4,即使在真實的計算器上它是5.6。 (切片的#通過找到比薩餅的面積然後通過14.125,其被聲明爲sliceArea
除以找到)
pi
被聲明爲3.14的恆定整數,二者sliceNumber
和sliceDiameter
被聲明爲一倍。 sliceArea
被聲明爲14.125的整數。
* pi被聲明爲3.14的常量整數*什麼!我從你的問題推斷你是初學者。如有必要,請在教程中向前跳至解釋整數和浮點數之間差異的頁面。或者如果您閱讀該頁面的速度太快,請跳過。 –
在強類型語言(如C++)中發佈一個關於「爲什麼不提供預期結果」的問題,但在示例代碼中不包括類型聲明,這意味着問題不清楚。每個變量的確切類型是任何C++代碼示例的關鍵部分。在散文中陳述他們的類型是不夠的,因爲我們不能確定你的意思是說你的意思,而是真正地說出你的意思。 – DevSolar