20191208-对一个整数开方,不能用sqrt

要求:对70开方,保留到小数后1位。

  1. #include "stdafx.h"

  2. #include "iostream"

  3. #include "string"
    #include "iomanip"

  4. using namespace std;

  5. int main()

  6. int a=70;

  7. double b=0;

  8. for( b=0.1;b<=a;b+=0.01)

  9.  {

  10. if ((b*b)>=a)

  11.   {cout<<setiosflags(ios::fixed)<<setprecision(1)<<b<<endl;break;}

  12.   }

  13. }

//执行结果如下图,

 


程序思路:  70开方得8.3666,这里精确到小数后一位,得8.4,而不是8.3 

强制保留两位小数:include<iomanip>

          cout<<setiosflags(ios::fixed)<<setprecision(1)<<a<<endl; 

 



#include  <iomanip>  是 I/O 流控制头文件,类似与 C 里面的格式化输出一样,记住就好,具体的一些操作符及作用可以参考下表所示。操作符 作用 
dec 设置整数为十进制 
hex 设置整数为十六进制 
oct 设置整数为八进制 
setbase(n) 设置整数为n进制(n=8,10,16) 
setfill(n) 设置字符填充,c可以是字符常或字符变量 
setprecision(n) 设置浮点数的有效数字为n位 
setw(n) 设置字段宽度为n位 
setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示 
setiosflags(ios::scientific) 设置浮点数以科学计数法表示 
setiosflags(ios::left) 输出左对齐 
setiosflags(ios::right) 输出右对齐 
setiosflags(ios::skipws) 忽略前导空格 
setiosflags(ios::uppercase) 在以科学计数法输出E与十六进制输出X以大写输出,否则小写 
setiosflags(ios::showpos) 输出正数时显示"+"号 
setiosflags(ios::showpoint) 强制显示小数点 
resetiosflags() 终止已经设置的输出格式状态,在括号中应指定内容 
原文地址:https://www.cnblogs.com/whcsrj/p/12928917.html