c语言的存储误差问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:59:20
f=123.456 输出时有存储误差
printf("%f %10f %10.2f %.2f %-10.2f\n",f,f,f,f,f)

想知道算出的过程

%f是浮点数,输出f中保存的浮点数
%10f表示输出浮点数f中的前10位
%10.2f表示场宽为10,其中有2位小数
%.2f表示输出2位小数
%-10.2f同10.2f,但输出之后左对齐,而不是右对齐。

浮点数存储误差关键取决于浮点数存储的性质,它实际上是通过一组2的幂相加之和来存储一个数字,所以理论上是不会完全精准的。但不同编译器可能也有不同的解析,具体更细节的部分建议你参照一下相关编译器浮点数的存储结构。