2013-05-06 103 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