时间限制: 1000 ms 内存限制: 65536 KB
提交数: 81761 通过数: 53127
【题目描述】
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。
【输入】
一个双精度浮点数。
【输出】
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
【输入样例】
12.3456789
【输出样例】
12.345679
12.34568
1.234568e+001
12.3457
【题目考点】
1. 以不同形式输出浮点类型的量
使用printf 输出浮点型量时,不同的定格式控制说明符效果如下
格式控制说明符 效果 示例
%f 以小数形式输出 10.020000
%e 以科学计数法形式输出 1.002e1
%g 至多保留6位有效数字,去除末尾的0。
当该数字在%e形式下指数大于等于6或小于等于-5时,使用%e,否则使用%f。 10.02
注:存在说明符%E, %G,其效果分别与%e,%g相同,只不过输出的指数标识不是e而是E
2. 输出浮点型量默认保留小数位数
printf输出浮点型量,如不指定保留位数,默认保留6位
例:printf("%f", 1.02);//输出1.020000
3. 输出浮点型量a保留x位小数的写法:
cout<<fixed<<setprecision(x)<<a;
printf("%.xf", a);
【题解代码】
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a;
scanf("%lf", &a);
printf("%f\n%.5f\n%e\n%g", a, a, a, a);
return 0;
}