#include<stdio.h>voidmain(){floata=78.88;printf("%f ",a);}输出结果却是78.879997表示很无语,为什么。...

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Anna

    13人对此回答表示赞同

    zy im DB haha
    展开
    13
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Joseph

    12人对此回答表示赞同

    有效数字6位, 指 78.8799 ,有效数字精度到 6位,它含截断误差,截断误差 在第7位。

    它不等于 78.88; 是因为 10进制化2进制,再2进制化10进制。引入了截断误差。
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Mia

    7人对此回答表示赞同

    单精度浮点型有效数字是7位 后面一般补齐6位小数
    楼主用的是VC6.0 吧 用TC2.0 试试 或许和软件对读数据的处理有关 具体原因我也不明白 帮不了你
    展开
    7
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Sierra

    5人对此回答表示赞同

    想要搞清楚这个问题,你需要了解float类型在内存中的存储结构
    符号位|指数|尾数
    78.88在内存中的结构为
    01000010 10011101 11000010 10001111
    第一位为符号位,0
    后面八位为指数位10000101
    最后23位为尾数0011101 11000010 10001111
    0,10000101,1.0011101 11000010 10001111
    指数需要减去127才是真正的指数
    展开
    5
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部