c语言中 float和double到底怎么区别?为什么运行这个程序后,12.34精度没有损失,而56.78的精度却损失了

2025-03-09 13:07:22
推荐回答(1个)
回答1:

float 精度为7位有效数字,double 精度为14位有效数字。
由于 计算机用 2进制,10进制数据输入后会转化为2进制,输出时又转回来,这种转换会引入误差 (通常说法 “化不尽”)。
你可以改double 作比较:
double f1,f2; f1=12.34; f2=56.78;
printf("\n%f,%f",f1,f2); -- 输出为 12.340000,56.780000
而原来用 float f1,f2; 输出为 12.340000,56.779999