c语言问题:如下 #include<stdio.h> main() {double a;int b

c语言问题:如下#include<stdio.h>main(){doublea;intb;printf("input");scanf("%lf",&a);printf("... c语言问题:如下
#include<stdio.h>
main()
{double a;int b;
printf("input");
scanf("%lf",&a);
printf("\n");
a=(int)(a*1000);
a=(int)(a/10)+1; /*1*/
a=a/100; /*2*/
printf("%f",a);}
如果输入12.3785程序结果12.380000但把/*1*/ 和/*2*/合并为
a=((int)(a/10)+1)/100;
结果就变成了12.0000
这是为什么?
展开
 我来答
zzzziszzzz
推荐于2018-04-27 · 超过32用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:60.5万
展开全部
因为a本身就是double型啊!double型*1000依然是double型,而加了(int)后,就是整型数据了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式