2013-05-06 105 views
-2

編輯所以我發佈了HTML和我正在使用的代碼。我沒有得到任何錯誤,但它與小數的數量沒有任何不同?C++ setprecision(設置小數位數1-10)

所以我有一個表格,用戶將選擇1到10來決定顯示「答案」的計算顯示多少小數。我正在嘗試使用setprecision,請幫我清理我的代碼

int decDropDown; 

getvar("decDropDown", dest4,buffer); 

decDropDown = atoi(dest4); // The decimal value 

if(decDropDown == 1) 
{ 
    cout<<setprecision(decDropDown)<<answer<<endl; 
} 
else if(decDropDown == 2) 
{ 
    cout<<setprecision(decDropDown)<<answer<<endl; 
} 

..等等等等。

HTML

<p>Please select how many decimal places to show your answer : 
<select name="decDropDown"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
<option value="10">10</option> 
</select> 
+3

你有什麼錯誤? – taocp 2013-05-06 01:21:04

+1

你包括iomanip? – 2013-05-06 01:22:49

+7

爲什麼不只是'setprecision(decimalValue)'? – Patashu 2013-05-06 01:23:50

回答

0

沒有什麼是錯的代碼,但你應該使用這一點,就會節省時間。

cout<<setprecision(decimalValue)<<answer<<endl; 
+2

除了最後沒有額外的雙引號外。 – 2013-05-06 01:42:24

+0

@MarJamRob我編輯了我的主帖,仍然沒有工作? – 2013-05-06 02:40:31

+0

@MartyHuggins你的錯誤是什麼?這將有所幫助。 – MarJamRob 2013-05-06 13:27:34

1
#include <iostream> 
#include <iomanip> 

int main() 
{ 
    double whatever = 3.13; 
    // using IOManip header: 
    std::cout << std::setprecision(100) << std::fixed << whatever << std::endl; 
} 

setprecision是標準的命名空間的一部分,所以如果你不叫使用std :: setprecision和std ::使用命名空間std固定或;你將不得不使用的std :: setprecision的std ::固定而不是setprecision固定

您沒有向我們展示您的頭文件聲明是什麼樣的,因此根據您發佈的內容判斷您可能需要包含頭文件或使用範圍解析運算符。

+0

我試着交換代碼的這部分'std :: cout << std :: setprecision(100)<< std :: fixed << whatever << std :: endl;'但它沒有改變任何東西。我究竟做錯了什麼?我編輯了我的主帖 – 2013-05-06 02:40:13

+0

這並不意味着你需要「交換」你的項目。我提供了各種各樣的「概念證明」。如果你運行我給你的代碼,你會明白它的作用。在堆棧溢出中,我們嘗試以鼓勵提問者學習自己的方式回答問題。 – 2013-05-06 04:12:05

+0

@MartyHuggins它可能會給你一個關於數字類型如何在C++中工作的想法 – 2013-05-06 04:15:16