在C ++中查找数字的平方根

时间:2016-12-15 06:33:37

标签: c++

//find square root of a number n till d decimal points
#include<iostream>
#include<iomanip>

using namespace std;
int main(){
   int n;int d;cin>>n>>d;
   double x=n;int i=1;
   while(i<=20){
       float t=(x+n/x)/2;i++;x=t;
   }
   cout<<fixed<<setprecision(d)<<x<<endl;



   }

这个算法似乎是正确的,但是当我认为setprecision将我不想要的数字四舍五入时。 setprecision()的任何其他替代方案都没有完善我的最终答案? INPUT 10 4 给了我3.1623 但答案是3.1622 同样输入10 7给了我3.1622777,它的小数点后面有2位。

1 个答案:

答案 0 :(得分:1)

要将值截断为d小数位,请乘以10 ^ d,取楼层,然后除以相同的数字。

double multiplier = pow(10, d);
double result = floor(t * multiplier) / multiplier;
cout << fixed << setprecision(d) << result << endl;