【问题标题】:How to display more digits when printing a double? [duplicate]打印双精度时如何显示更多数字? [复制]
【发布时间】:2017-02-18 17:37:43
【问题描述】:

计算一个数的平方根

#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 我认为我编写的代码将值四舍五入并显示它。 如何获得计算器显示的值。

【问题讨论】:

标签: c++


【解决方案1】:

我不知道是否有其他解决方案,但我知道这会起作用:

cout << setprecision(10);

在你打印出你的替身之前运行这个。

您可以将数字设置为您想要的任何值,但cout &lt;&lt; 1.22222222222222222222; 仍然只会打印出1.2222222222222223,因为您超出了双精度限制。

【讨论】:

  • 它对变量进行四舍五入。1.22222222222222222222 将显示为 1.2222222222222223 我只想查看小数点后的 5 个值
  • 所以你将 setprecision() 改为 5。就这么简单。
  • @ABusyProgrammer cout &lt;&lt; setprecision(5); cout&lt;&lt;1.222299; 会给1.2223 我希望它是1.2222
  • 在这种情况下你需要的是std::floor在谷歌上搜索;很多关于如何实现它的帮助将会出现。
猜你喜欢
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 2017-11-15
  • 2012-02-12
  • 1970-01-01
相关资源
最近更新 更多