2606: 【例14.1】输出浮点数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:65 解决:56

题目描述

读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。

输入

一个双精度浮点数。

输出

第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。

样例输入 复制

12.3456789

样例输出 复制

12.345679
12.34568
1.234568e+01
12.3457

提示

科学计数法是一种将冗长数字简洁表示的有用简写方式。虽然科学计数法一开始看起来有些陌生,但理解它将有助于你理解浮点数是如何运作的——更重要的是,它的局限性是什么。
科学计数法中的数字形式如下:有效数 × 10^指数。例如,在科学计数法 1.2 × 10⁴ 中,1.2 是有效数,4 是指数。由于 10⁴ = 10,000,所以 1.2 × 10⁴ = 12,000。
按惯例,科学计数法中的数字会写成小数点前只有一位数字,其余数字在小数点之后。
比如地球的质量,用十进制表示是:
5972200000000000000000000 kg
这个数字非常大(大到一个 8 字节整数都装不下)。同时也很难阅读(这是 19 个零还是 20 个零?)。即使加了分隔符(如 5,972,200,000,000,000,000,000,000),还是不太容易读。
而使用科学计数法,则可表示为:
5.9722 × 10²⁴ kg
这样要清晰得多。科学计数法的另一个好处是:在比较极大或极小的两个数时,可以直接比较指数的大小,非常直观。
由于在 C++ 中输入或显示指数比较麻烦,我们通常使用字母 e(有时是 E)来代表"乘以 10 的多少次幂"。比如:
1.2 × 10⁴  →  1.2e4  
5.9722 × 10²⁴  →  5.9722e24
如果是小于 1 的数字,指数可以为负数。例如:
5e-2 = 5 × 10⁻² = 5 ÷ 10² = 0.05
电子的质量就是:
9.1093837e-31 kg


#include<bits/stdc++.h>
using namespace std;
double d ;
int main(){
    cin>>d;
    printf("%f\n",d);
    printf("%.5f\n",d);
    printf("%e\n",d);
    printf("%g\n",d);
    return 0;
}