2017-02-18 83 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