float -3.4*10^38~3.4*10^38 6~7位小数 4字节
====>float 精度要求不高 速度运算
double -1.7*10^308~1.7*10^308 16~17位小数 8字节
====>double 精度要求比较高 数据特别大
#include <stdio.h>
int main()
{
float x =3.1415926f; //f代表float型 不然代表double
double y = 3.1415926;
printf("%0.20f\n%0.20f", x,y);
getchar();
}
输出结果
3.141592 | 50259399414063 7位
3.1415926000000000 | 6841 17位
ps:
浮点型精确6 ~ 7位,不是打印6~ 7位的小数。而是这个值,后面会精确到6 ~ 7位。
比如:float x =0.51;实际上你定义是一个0.51的数据,但是它会精确到6 ~ 7小数,其实x存储的是0.50999999
#include <stdio.h>
int main()
{
float r = 0.51;
printf("r:%0.8f", r);
getchar();
}
输出结果:
r:0.50999999
网友评论