C语言float类型储存和printf输出问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言float类型储存和printf输出问题相关的知识,希望对你有一定的参考价值。

参考技术A 原因就是,你使用了lf输出,其实是将float
x转换为一个double输出了。
相当于
double
y
=
x;,然后输出y,这样后面的数值其实是因为一个4位浮点数给8位浮点数赋值的时候,将x的真实存储以double的精度显示出来了。
具体的说,这涉及float的二进制保存方式,如果你有兴趣,可以看看基础语法书上关于float的讲解,这里没法画图,不好解释,其实就是一个指数为8的位移码,因为实际不是以10进制存储,所谓10进制精度只是保障精度,实际的存储,是一个2^127

以上是关于C语言float类型储存和printf输出问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言实型常量

C语言里面float数据用printf(“%d”)输出的问题

c语言中两句相同的printf为啥输出结果不同

C语言里面float数据用printf(“%d”)输出的问题

C语言float类型

C语言中printf输出float和double都用%f么(scanf又如何)