什么时候用float什么时候用double java保留两位小数
float: 10^38 1e+38
float:单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间。
也就是说(1的后面38个零)
double:双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间
也就是说(1的后面308个零)
网友1:
一般情况下float即可以满足实数计算要求,当你的精度要求非常小的时候,比如1e-6的时候就可以考虑用double了,float和double主要的区别就是精度问题
网友2:
类型 符号位 阶码 尾数 长度
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;