C++中double类型的数字如何保留三位小数点详解

2018-06-17 21:25:00来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

我们知道C语言中,如果要求输出结果保留三位小数,我们可以使用pritf()函数轻松的解决。但是C++的输出运算符<<并没有直接实现这个功能,怎么办呢?之前在找答案的过程中各路大神给出了千姿百态的答案,我不会进行一一总结,但是我今天主要的目的是说C++中std命名空间中直接实现了这个的!!!不要化简为繁!!!

我以一个例子作为讲解:

已知线段的两个端点坐标是A(xa,ya),B(xb,yb),求线段AB的长度,保留到小数点后3位。

样例输入:1    1

                  2    2

样例输出:1.414

代码如下:

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main(int argc, char** argv) {
    double xa,ya,xb,yb,result;
    cin>> xa>>ya>>xb>>yb;
    result=sqrt( (xb-xa)*(xb-xa)+(yb-ya)*(yb-ya) );
    cout<<fixed<<setprecision(3)<<result<<endl;
    return 0;
}

很多人会对下面这句代码不理解,

cout<<fixed<<setprecision(3)<<result<<endl;

下面我们进行重点讲解:

设置小数点精度

设置要用于格式化输出操作的浮点值小数精度

这个操纵符是在头文件<iomanip>中声明的

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main(int argc, char** argv) {
    double a=3.1415926;
    cout << setprecision(3) << a <<endl;  //3.14
    cout << setprecision(9) << a <<endl;  //3.1415926
    cout << fixed << setprecision(3) << a <<endl;  //3.142
    cout << fixed << setprecision(9) << a <<endl;  //3.141592600
    return 0;
}

如果有什么疑问,欢迎留言。如需转载,请注明出处:http://www.cnblogs.com/wongyi/p/8204210.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:HDU1846 Brave Game

下一篇:visual studio------初建一个c++项目流程