跳到主要内容

浮点数

double

double就是小数,浮点数范围是 2.22507e-308~1.79769e+308 (e表示科学计数法),但是精度不高,只有15、16位精度。什么意思呢?就是存200000000000000000000.0可以,但是存212345678901234567890.0就存得不准确

我们可以用printf来控制输出几个小数

double a=200000000000000000000.0;
double b=212345678901234567890.0;
printf("%.1f\n",a);//200000000000000000000.0
printf("%.1f\n",b);//212345678901234565120.0
// ↑到这里精度就不够了

float

float就是较小的double

  • double 名称是 双精度浮点数 占8字节
  • float 名称是 浮点数 占4字节

float的精度只有6、7位,那为什么不用double呢?