c/c++语言开发共享C中的浮动和双精度

在C中,double比float更精确,根据“C primerplus第六版”一书(第80页),浮点数可以代表至少6个有效数字,双数字可以代表至少13个有效数字。 所以我尝试用这个简单的例子validation:

#include int main(void){ float a = 3.3333333; // 7 significant digits double b = 3.33333333333333;// 14 significant digits printf("nFloat: %fn", a); printf("Double: %fn", b); return 0; } 

这是该计划的输出:

 Float : 3.333333 Double: 3.333333 

为什么double值与float值具有相同的精度,而不是显示更多有效数字?

    这样的大多数问题可以通过咨询C标准来回答:

    每个转换规范都由’%’字符引入…之后依次出现以下内容:

    描述f说明符:

    double参数应转换为“[ – ] ddd.ddd”样式的十进制表示法,其中基数字符后的位数等于精度规范。 如果缺少精度,则应视为6

    因此,通过简单地使用%f ,您指示printf打印后的六位数字. 。 如果要查看更多数字,则需要指定精度: %.15f

    您需要显示更多有效数字。 如果你这样做:

     printf("nFloat: %.20fn", a); printf("Double: %.20fn", b); 

    你会得到这个:

     Float: 3.33333325386047363281 Double: 3.33333333333332992865 

      以上就是c/c++开发分享C中的浮动和双精度相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519383.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐