如何求根號2的值,並且按照需要列出指定小數位

如何求根號2的值,並且按照我的需要列出指定小數位,比如根號2是1.141   我要列出1位小數就是1.1  2位就是1.14,..... 等,由於double精確到小數點後16位,故此題要達到小說點後16或更高就不可以了,如果大神有解決辦法可以留言,感謝!········

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

void sqrt(int num,int len)
{
	double precision=1;
	for(int i=0;i<len;++i)
		precision=precision/10;

	double lnum=1.0,rnum=num;
	while(fabs(lnum-rnum)>precision)
	{
		double mid=(lnum+rnum)/2;
		if(mid*mid>num)
			rnum=mid;
		else
			lnum=mid;
	}

	cout<<setprecision(len+1)<<lnum<<endl; //控制輸出流顯示浮點數的數字個數
}

void main()
{
	int num=2,len=12;

	sqrt(num,len);
}
發佈了73 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章