2017-02-18 88 views
-2

计算数如何在打印双面时显示更多数字?

#include<iostream> 
#include<math.h> 

using namespace std; 
int main() 
{ 
double pmid=0,n,st=0,en,mid=0; 
double dif=3; 
cin>> n;    // number whose square root is to be found 
en=n;     // end number  
while(dif>.00000001){ 
mid =(st+en)/2;  //mid number , st = start number 
if (mid*mid>n){  
    en=mid;   // re positioning end number 
} 
else { 
    st =mid;   // re positioning end number 
} 

dif=fabs(pmid-mid); //difference between previous and present mid values 
pmid=mid; 
cout <<mid<<" "<<dif<< endl; 
} 
} 

output image

问题在我的结果的平方根和计算器的结果是数10的不同的I计算出的输出为3.16228 和谷歌的计算器计算它作为3.16227766017 我想我的书面代码将值舍入并显示它。 如何获得计算器显示的值。

+3

你想知道如何显示更多的数字?您的标题说明了其他内容 – user463035818

+0

检查[C++标准I/O操纵器](http://en.cppreference.com/w/cpp/io/manip)设施。 –

回答

2

我不知道是否有另一种解决方案,但我知道,这将工作:

cout << setprecision(10); 

运行此之前,你打印出一倍。

您可以将数字设置为任何您想要的数值,但cout << 1.22222222222222222222;仍将仅打印1.2222222222222223,因为您已超过了双精度限制。

+0

它将变量舍入.1.22222222222222222222将显示为1.2222222222222223我只希望看到十进制后的5个值 – Bogorovich

+0

因此,您将setprecision()更改为5。 –

+0

@abusyProgrammer'cout << setprecision(5); cout << 1.222299;'会给出1.2223'我希望它是'1.2222' – Bogorovich