c++中,float double区别

水深无声 2022-08-14 01:55 281阅读 0赞
  1. 类型 比特数 有效数字 数值范围
  2. float 32 6-7 -3.4*10(-38)~3.4*10(38)
  3. double 64 15-16 -1.7*10(-308)~1.7*10(308)
  4. long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)
  5. 简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件)
  6. 还有,有个例子:在CC++中,如下赋值语句
  7. float a=0.1;
  8. 编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
  9. 原因:
  10. C/C++中(也不知道是不是就在VC++中这样),上述语句等号右边0.1,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning,一般改成0.1f就没不会出现warning信息了。
  11. 转自:http://zhidao.baidu.com/link?url=UABaeuPHP6DKB2aBlFFtRX0OUh04fEqAL7p_GspY2R_xBQ75IuHhBGUKCbkJA2FLJwqO75-7qNT5Yc_l6TZOAK

发表评论

表情:
评论列表 (有 0 条评论,281人围观)

还没有评论,来说两句吧...

相关阅读

    相关 c++ double float 数值比较

    浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得