C语言分数输出
main(){floatC;C=3/2;printf("%f",C);getch();}为什么输出结果不是1.500000而是1.000000,如何改正?谢谢!...
main()
{ float C;
C=3/2;
printf("%f",C);
getch();
}
为什么输出结果不是1.500000而是1.000000,如何改正?
谢谢! 展开
{ float C;
C=3/2;
printf("%f",C);
getch();
}
为什么输出结果不是1.500000而是1.000000,如何改正?
谢谢! 展开
3个回答
推荐于2017-08-24 · 知道合伙人互联网行家
正青春梦飞扬
知道合伙人互联网行家
向TA提问 私信TA
知道合伙人互联网行家
采纳数:6837
获赞数:306020
对SEO有这独特见解 工作努力积极、团结同事 连续2个月个人工作完成优秀 客户0投诉 评委最佳班组经理
向TA提问 私信TA
关注
展开全部
如果采用float或者double定义数据类型,则无法以分数形式输出,原因是该数据类型的计算结果会采用二进制小数表示,出现误差而无法用分数精确表示。
如果需要用分数形式输出,最好的方法是采用两个int类型的变量储存分子和分母,手动计算分数的加减乘除,这样输出的时候只需要按照整数的输出方式,手动添加分数线即可。
具体方法可以参考如下程序段:
int num; // 定义分子
int den; // 定义分母
double a = 3.5;
num = 7; // 3.5的分子
den = 2; // 3.5的分母
printf("%d\n", num); // 输出分子并换行
printf("----\n"); // 输出分数线并换行
printf("%d\n", den); // 输出分母并换行
如果需要用分数形式输出,最好的方法是采用两个int类型的变量储存分子和分母,手动计算分数的加减乘除,这样输出的时候只需要按照整数的输出方式,手动添加分数线即可。
具体方法可以参考如下程序段:
int num; // 定义分子
int den; // 定义分母
double a = 3.5;
num = 7; // 3.5的分子
den = 2; // 3.5的分母
printf("%d\n", num); // 输出分子并换行
printf("----\n"); // 输出分数线并换行
printf("%d\n", den); // 输出分母并换行
展开全部
因为C=3/2;这个表达式的计算顺序是:先计算3/2 这个计算是整型的计算 所以结果是1 然后再赋给float 类型的C 所以结果是1.0000000 呵呵,如果要想得出1.50000,那么就将3/2改为3/2.0,就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main(){
float c;
c=(float)3/2;
//c=3.0/2;
printf("%f",c);
getch();
}
数据类型转换问题。
3/2 3.2都是INT 1.5只会取整数部分1
在转换就是1.00
float c;
c=(float)3/2;
//c=3.0/2;
printf("%f",c);
getch();
}
数据类型转换问题。
3/2 3.2都是INT 1.5只会取整数部分1
在转换就是1.00
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询