double和float区别
float:占4个字节
double: 占8个字节
double 和 float 的区别是double精度高,有效数字16位,float精度7位(可提供7位或8位有效数字,构成包括符号位、指数位和尾数位)。
但double消耗内存是float的两倍,double的运算速度比float慢得多,能用单精度时不要用双精度。
- 下面这个程序,是计算球的体积。输出的体积必须是double格式,否则会报错!
#include<iomanip>
#include<>
#include<iostream>;
using namespace std;
int main(){
//------------------------------------
//法1:
/*float a=;
cin>>a;
cout<<fixed<<setprecision(3)<<4*3.1415926*a*a*a/3;
return 0;*/
//-------------------------------------
//法2:
/*float PI=3.1415927,v,r;//为什么是这样
scanf("%f",&r);
v=(4*PI*r*r*r)/3;
printf("%.3f",v);*/
//------------------------------------
//法3:
/*double p,V;
float r;
p=3.1415926;
scanf("%f",&r);
V=(4*p*r*r*r)/3;
printf("%.3lf",V);
return 0;*/
//------------------------------------
//法4:
float r;
const double pi=3.1415926;
scanf("%f",&r);
double V=(4*pi*pow(r,3))/3;
printf("%.3lf",V);
return 0;
}
输入时:
float型输入用%f
double型输入用%lf
输出时:
最好是都用%f输出
在G++中,double类型若用%lf输出可能会错,
而在C++中,double类型用%lf输出是正确的
printf() 函数中不存在 %lf。