当前位置: 移动技术网 > 移动技术>移动开发>IOS > C语言输出n位小数

C语言输出n位小数

2020年07月08日  | 移动技术网移动技术  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网