• C语言实型数据(浮点数)


    实数的表示

    1) 十进制数形式

    由数码0~ 9和小数点组成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均为合法的实数。

    注意,必须有小数点。

    2) 指数形式

    由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为:

    a E n(a为十进制数,n为十进制整数)

    其值为 a*10n。如:

    2.1E5 (等于2.1*105)

    3.7E-2 (等于3.7*10-2)

    0.5E7 (等于0.5*107)

    -2.8E-2 (等于-2.8*10-2)

    以下不是合法的实数:

    345 (无小数点)

    E7 (阶码标志E之前无数字)

    -5 (无阶码标志)

    53.-E3 (负号位置不对)

    2.7E  (无阶码)

      

    1 #include <stdio.h>
    2 int main(void){
    3     printf("%f
     ",356.);
    4     printf("%f
     ",356);
    5     printf("%f
     ",356.0);
    6     return 0;
    7 }

    3) 实数在内存中的存放形式

    实数一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:

    说明:

    • 小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。
    • 指数部分占的位数愈多,则能表示的数值范围愈大。

     

    实型变量

    实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。

    在VC6.0中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

    类型说明符

    比特数(字节数)

    有效数字

    数的范围

    float

    32(4)

    6~7

    10-37~1038         

    double

    64(8)

    15~16

    10-307~10308

    long double

    128(16)

    18~19

    10-4931~104932

     

      实型变量定义的格式和书写规则与整型相同。例如:

    1 float x,y;  // x,y为单精度实型量
    2 double a,b,c;  // a,b,c为双精度实型量

      实数的舍入误差。

    1 #include <stdio.h>
    2 int main(void){
    3     float a,b;
    4     a=123456.789e5;
    5     b=a+20;
    6     printf("a=%f
    ",a);
    7     printf("b=%f
    ",b);
    8     return 0;
    9 }

    1.0/3*3的结果并不等于1

    #include <stdio.h>
    int main(void){
        float a;
        double b;
        a=33333.33333;
        b=33333.33333333333333;
        printf("a=%f
     b=%f
    ",a,b);
        return 0;
    }

    从本例可以看出:

      • 由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。
      • b 是双精度型,有效位为十六位。但VC6.0规定小数后最多保留六位,其余部分四舍五入。

    注意:实型常数不分单、双精度,都按双精度double型处理。

  • 相关阅读:
    pycharm中文乱码
    bootstrap-table分页
    sql将查询结果的某个字段赋值给另一个字段
    bootstrap tab选项卡
    cocos-js 精灵移动转圈
    配置环境变量路径有空格
    配置java环境遇到的问题及解决方案
    obj = obj || {} 分析这个代码的起到的作用
    sql server行转列
    sql server统计总成绩和排名
  • 原文地址:https://www.cnblogs.com/huxiaowei/p/3905788.html
Copyright © 2020-2023  润新知