计算数字的平方根
#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;
}
}
我的结果中的问题和计算器中的结果不同我计算出的数字10的输出为3.16228 并且谷歌计算器将其计算为3.16227766017 我认为我的书面代码会对值进行四舍五入并显示出来。 如何获得计算器显示的值。
答案 0 :(得分:2)
我不知道是否有其他解决方案,但我知道这会有效:
cout << setprecision(10);
在打印出双张之前运行它。
您可以将数字设置为您想要的数字,但cout << 1.22222222222222222222;
仍然只会打印1.2222222222222223
,因为您已经超过了双精度限制。