美文网首页
float-计算机基础

float-计算机基础

作者: 大鱼鱼 | 来源:发表于2019-04-06 21:32 被阅读0次
#include<stdio.h>
main()
{
    float a;
    double b;
    a=123456.789e4;
    b=123456.789e4;
printf("%f\n%f\n",a,b);
}

运行结果

[leo@localhost ~]$ cd lyj
[leo@localhost lyj]$ gcc float.c
[leo@localhost lyj]$ ./a.out
1234567936.000000
1234567890.000000
[leo@localhost lyj]$ 
  • 为什么float类型输出的数和double类型不一样?

float类型可以精确表示7个十进制有效数位,后面的数位是舍入后的结果,舍入结果可能会更大也可能会更小;所以1234567前七位是精确表示的,后面的位数可能舍,可能入。
double类型可以精确到17个十进制有效数位,对于b来说,可以全部输出。

  • 为什么float类型只能精确表示7个十进制数位?

从浮点数二进制表示格式可以知道,尾数部分表示的是23位有效数位,因为23位尾数表示的是小数点右边的数,小数点左边有一位默认为1的位,所以一共有24位有效数位,2^{24}-1=16777215,转化为十进制10^7<16777215<10^8,所以float类型只能精确到7位。

  • 注意:这只能说明超过7位一定不能精确表示,而小于7位有可能被精确表示。0.1就不能被精确表示,因为浮点数表示的并不是连续的数,而是离散的数。

相关文章

  • float-计算机基础

    运行结果 为什么float类型输出的数和double类型不一样? float类型可以精确表示7个十进制有效数位,后...

  • Python Notes

    Data type bool int/float string transforming int/float->s...

  • float-浮动

    浮动设置之处是为了适用于文字的环绕,后来发现用浮动能解决一些页面布局中的问题,就用于页面的布局上了。float可以...

  • float-浮动

    设置float的元素,会脱离文档流,往设置的方向进行浮动,直到遇到父级的边界或者其他的浮动元素 就会停止。 浮动的...

  • 技术书单

    计算机基础书籍 计算机组成原理 《编码:隐匿在计算机软硬件背后的语言》 :零基础入门《穿越计算机的迷雾》:零基础,...

  • 02java数据类型转换

    1、自动转换 ☞发生在向上转型时,byte,short,char->int->long -> float->dou...

  • float-清除浮动

    1.为什么要清除浮动: CSS中的定位机制分为,文档流,浮动和绝对定位。如果对元素没有进行任何定位处理的话,元素应...

  • 笔记 | 计算机系统基础:00-为什么要学这门课?

    课程链接:计算机系统基础(一):程序的表示、转换与链接计算机系统基础(二):程序的执行和存储访问计算机系统基础(三...

  • 第一天 Java基础入门【悟空教程】

    精心收集整理的教程笔记 第01天 Java基础入门 第1章计算机基础 1.1计算机 计算机(computer)俗称...

  • 1.1_计算机基础

    1.计算机基础知识 1.1_计算机专业分类 1.2_计算机基础课程 1.计算机组成原理 2.软件工程 ...

网友评论

      本文标题:float-计算机基础

      本文链接:https://www.haomeiwen.com/subject/lfediqtx.html