什么时候用float什么时候用double

什么时候用float什么时候用double,最好可以举个例子说明一下,谢谢

类型      符号位 阶码  尾数  长度
float           1      8        23    32
double       1     11        52    64

double 和 float 的区别是 double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多,能用单精度时不要用双精度(以省内存,加快运算速度)。

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    float a=12.257902012398877;
    double b=12.257902012398877;
    const float PI=3.1415926;         // 常量定义
    cout<<setprecision(15)<<a<<endl;  // 只有6-7位有效数字,后面的就不精确
    cout<<setprecision(15)<<b<<endl;  // 有15-16位有效数字,所以完全正确
    cout<<setprecision(15)<<PI<<endl; 
    return 0;
}

一般情况下float即可以满足实数计算要求,当你的精度要求非常小的时候,比如1e-6的时候就可以考虑用double了,float和double主要的区别就是精度问题