为什么输入353.88然后就成了353.880005
#include <stdio.h>int main() {
float grade;
float max=grade;
int i;
while(scanf("%f",&grade)!=EOF&&grade>0) {
if(max<grade)
max=grade;
}
printf("%f",max);
return 0;
} float类型失真了 这是由于浮点数的存储并非 1 个位存储 1 个数,它是经过计算并以相对接近的方式存储,所以存在一定的误差
感兴趣的可以参考一下这篇文章,里面有介绍系统存储浮点数的方式 -> https://fishc.com.cn/thread-67214-1-1.html
页:
[1]