C/C++ 中 float 和 double 的区别


众所周知,在 C/C++ 中,我们需要使用 float 和 double 数据类型来表示浮点数,即带有小数部分的数字。现在,我们可以根据这两种数据类型提供的精度来区分它们。

简单来说,double 的精度是 float 的 2 倍,这意味着 double 数据类型的精度是 float 数据类型的两倍。

在精度方面,可以说明 double 对浮点数具有 64 位精度(1 位用于符号,11 位用于指数,52 位用于值),即 double 具有 15 位小数精度。而 float 对浮点数具有 32 位精度(8 位用于指数,23 位用于值),即 float 具有 7 位小数精度。

由于 double 比 float 精度更高,因此它所占用的内存是 float 数据类型占用内存的两倍,这很明显。

此外,这两种数据类型的范围可以表示为 ±3.40282347E+38F,即 float 的 6-7 个有效数字,以及 ±1.79769313486231570E+308,即 double 的 15-16 个有效数字。

根据以上几点,我们可以说,如果不需要高精度,并且程序只需要存储大量的小数数组,那么 float 是一种经济高效的存储数据方式,并且可以节省内存;而当需要更高精度时,则应选择 double。

更新于: 2020-02-24

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告