float无法精确表示0.2,可以考虑用整型数据保存2,当成0.2来使用,比如计算0.1+0.1可以计算1+1=2,这个2就是0.2
在计算机程序设计中,浮点数是不能指望精确存储或计算的,一定有误差,可以考虑控制误差的办法解决这个问题。
如果让c-0.2,那怎么让c显示0
追答float c=0.1+0.1,d; int b;
d=c-0.2; printf("%.1f",d); //printf默认使用用四舍五入方法
b=d*10+0.5; d=b/10; //首先利用四舍五入计算后取整,然后利用整数截断尾数
有没有不用printf语句的办法
追答这个就是不用printf的方法,结果在d中保存
float c=0.1+0.1,d; int b; d=c-0.2; b=d*10+0.5; d=b/10;
谢谢,不过这仍然不是我要的算法。我已经想明白了,在计算的时候让c先乘10就好了