C++保留小数点后几位&科学计数法

    技术2026-03-05  9

    先简述在C里保留小数点的方法

    #include<stdio.h> int main() { double a=456.2345677; printf(" %.2lf\n",a);//输出后2位 printf(" %lf\n",a); //小数点后全输出 printf("%.8lf\n",a); //后八位 return 0; } //输出结果 456.23 456.234568 456.23456770 Program ended with exit code: 0

    现在来说C++里的

    #include <iomanip>//头文件别忘了哦!

    最厉害的一种写一次后面都会输出小数点

    double a=123.12345678,b=456.34567; cout<<setiosflags(ios::fixed)<<setprecision(3); cout<<a<<endl; cout<<b<<endl; //输出 123.123 456.346

    最简洁的一种可是在b没有小数点后五位的时候,它不能加上0作为后缀

    double a=123.12345678,b=456.34; cout<<setprecision(5)<<a<<endl; cout<<setprecision(5)<<b<<endl; //输出 123.12346 456.34

    最中庸的三种

    cout<<setiosflags(ios::fixed); cout<<setprecision(3)<<a<<endl; cout.setf(ios::fixed); cout<<setprecision(2)<<b<<endl; cout<<fixed; cout<<setprecision(4)<<a<<endl; //输出 123.123 456.35 123.1235

    p.s.以上每一种都有四舍五入的功能

    科学计数法(这次先说C++的)

    en可以代表为10^n

    double a=3e5//a=3*10^5=300000

    接下来输出一个没有被科学计数的doubled的10^4的变量(貌似在Xcode里10^6以上就会直接转换成科学计数法)

    #include //头文件别忘了哦!

    #include<iostream> #include <iomanip>//头文件 using namespace std; int main() { double sum=1,sum1=1,b=12345; for(int i=1;i<=30;i++) { sum1*=i; sum+=sum1; } cout<<sum<<endl; cout<<b<<endl; cout<<setiosflags(ios::scientific)<<setprecision(2)<<b<<endl; } //输出 2.74411e+32 12345 1.23e+04

    在C里

    直接在输出的时候用%e就可,关于小数点请参照最上一栏

    int main() { double sum=1,sum1=1,b=12345; for(int i=1;i<=30;i++) { sum1*=i; sum+=sum1; } printf("%.2e %e\n",sum,b); } //输出 2.74e+32 1.234500e+04 Program ended with exit code: 0
    Processed: 0.014, SQL: 9