欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

C语言输出n位小数

程序员文章站 2022-06-17 10:26:38
C语言输出n位小数直接看代码:需要注意:下面的ios::fixed需要头文件iomanip,否则报错!#include #includeusing namespace std;int main(){ double d = 1.65469; int n = 4; cout << setiosflags(ios::fixed) << setprecision(n) <

C语言输出n位小数

直接看代码:
需要注意:下面的ios::fixed需要头文件iomanip,否则报错!

#include <iostream>
#include<iomanip>
using namespace std;
int main()
{

    double d = 1.65469;
    int n = 4;
    cout << setiosflags(ios::fixed) << setprecision(n) <<d;//输出1.6547
	return 0;
}

上面的是不是特简单,不需要那些骚操作,比如精确到小数点后2位:

double x = 1.65469;
cout << (int)(x*100+0.5)/100.0;//输出1.65

就像这样的骚操作就不要了,尽管你很秀。

还有一点要提醒
C语言的输出和C++的输出是不一样的:

#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{

    double x = 3.54;
    cout << x << endl;	//输出3.54
    printf("%f",x);		//输出3.540000
	return 0;
}
double d = 1/3.0;
cout<<d;//输出0.333333
double d = 8/3.0;
cout<<d;//输出2.66667

double d = 80/3.0;
cout<<d;//输出26.6667
double d = 8000/3.0;
cout<<d;//输出2666.67

printf默认输出6位小数,cout自动不输出后面多余的0,默认输出6位有效数字。
如果要改变有效数字的位数:

double d = 80/3.0;
cout<< setprecision(4) <<d;//输出26.67

但是需要注意

double d = 6.50004;
cout<< setprecision(4) <<d;//输出6.5

如果是这样的话:

double d = 6.504;
cout<< setprecision(4) <<d;//输出6.504

看到这里是不是有一点点迷。
看下面的总结就清楚了
setprecision(n) 以十进制小数形式输出时,n代表有效数字,以fixed(固定小数位数)和scientific(指数)形式输出时n为小数位数。
再回头看上面的就清楚了。
cout对象还有很多的成员函数,需要去书上查,这里就不再赘述了。

本文地址:https://blog.csdn.net/weixin_44813711/article/details/107168784