zoukankan      html  css  js  c++  java
  • 数据类型说明 实型

    1 实型常量的表示方法

    实数又称浮点数,实数有两种表示形式。

    (1)十进制小数形式,它由数字和小数点组成(注意必须有小数点)

    如:.123(0.123), 123.(123.0)

    (2)指数形式

    如:123e3或123E3都代表123*10^3,但注意字母e或E之前必须有数字,且e后面的指数必须为整数。

    2 实型变量

    2.1 实型数据在内存中的存放形式

    一个实数数据一般在内存中占4个字节(32位)与整型数据的存储方式不同,实型数据是按指数形式存储的,系统把一个实型数据分成小数部分与指数部分,分别存放。指数部分采用规范化的指数形式。

    如:3.14159 的存放形式如下

    +  .314159  1

    第一部分符号‘+’表示符号 +

    第二部分 .314159 表示小数部分

    第三部分 1 表示指数 10^1

    实际上在计算机中是用二进制数来表示小数部分以及用2的幂次来表示指数部分

    在4个字节(32位)中,究竟用多少位表示小数部分,多少位来表示指数部分,标准C并无具体规定,由各C编译系统自定,不少C编译系统以24位表示小数部分(包括符号)以8位表示指数部分(包括指数的符号)小数部分占的位数越多,数的有效数字就越多精度就越高,指数部分占的位数越多,刚能表示的数值范围越大。

    2.2 实型变量的分类

    C实型变量可分为:

    单精度(float) 32位 有效数字 6~7位  数值范围 10^-37 ~ 10^38

    双精度(double)64位 有效数字 15 ~16位 数值范围 10^-307 ~ 10^308

    长双精度型(long double)128位 有效数字 18 ~ 19 位 数值范围 10^-4931 ~ 10^4932

    2.3 实型数据的舍入误差

     由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去,由此可能会产生一些误差。

    看下面的程序

    #include <stdio.h>

    void main()

    {

      float a, b;

      a = 123456.789e5;

      b = a + 20;

      printf("%f\n", b);
    }

    运行的结果是 12345678848.000000

    不是想像是 12345678920

    可以看到前8位是准确的,后几位不是准确的

  • 相关阅读:
    前端总结(设计向)
    bootstrap 样式规范总结
    angular2学习---模板学习
    angular2学习 -- 基本配置学习
    前端相关小技巧以及问题总结
    认识hasLayout——IE浏览器css bug的一大罪恶根源 转
    bug 由于浏览器缓存而引起的ajax请求并没有获取到服务器最新数据从而导致的bug
    总结 好用的工具/网站/插件
    .NET FrameWork完全卸载
    ASP.NET4.0项目部署到Win7系统的IIS上
  • 原文地址:https://www.cnblogs.com/qkhhxkj/p/2089197.html
Copyright © 2011-2022 走看看