c语言float类型输出
#include<stdio.h>intmain(){floatsum,temp;printf("Inputyournumber\n");scanf("%f",&sum)...
#include<stdio.h>
int main(){
float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%f\n",sum);
return 0;
}
//为什么我输入的是37.1但是输出的结果却是37.099998应该怎么改 展开
int main(){
float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%f\n",sum);
return 0;
}
//为什么我输入的是37.1但是输出的结果却是37.099998应该怎么改 展开
4个回答
展开全部
#include<stdio.h>
int main(){
float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%.2f\n",sum);//因为计算机存储浮点数是采用二进制科学计数法来存储的,绝大部分小数不能完全转换成二进制,因此,浮点型数据在计算机中就是个近似数!当不约束小数点后的位数时,看到的会与我们输入的数据有差异,改善办法,一、用double,二、输出时控制小数点后的位数
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是float中的存储的数值转为二进制码时导致的缘故,如果只是输出,那么可以将%f改为%.1f(输出只输出小数点后一位.)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%0.1f\n",sum),这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询