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

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

程序员文章站 2022-03-12 08:31:18
先简述在C里保留小数点的方法#includeint main(){double a=456.2345677;printf(" %.2lf\n",a);//输出后2位printf(" %lf\n",a); //小数点后全输出printf("%.8lf\n",a); //后八位 return 0;}//输出结果456.23456.234568456.23456770Program ended with exit code: 0现在...

先简述在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

本文地址:https://blog.csdn.net/caarrrrite/article/details/107131246