## #include<stdio.h>
int main()
{
int a;
int b;
scanf("%d %d",&a,&b);
printf("%d + %d = %d\n",a,b,a+b);
printf("%d - %d = %d\n",a,b,a-b);
printf("%d * %d = %d\n",a,b,a*b);
if(a%b==0)
{
printf("%d / %d = %d\n",a,b,a/b);
}
else if(a%b!=0)
{
printf("%d / %d = %.2f\n",a,b,a*1.0/b); //a/b*1.0和原来有什么不同
}
return 0;
}
输入a=2 b=6为例
a*1.0/b结果为0.33
a/b*1.0为0
这是为什么
可以大概理解为:a原本是2,乘以1.0变成了2.0是一个浮点数,这时候除以b=6,得到的是0.33
a如果先除以b,两个都是整型的,得到的是0,0再乘以1.0结果还是0
a/b*1.0: 因为a和b都是整数,因此a/b=2/6得到的也为整数,即0, 0乘以1.0当然为0
a*1.0/b:先计算a*1.0,因为1.0为 浮点数,因此a自动转化为浮点数2.0,结果为浮点数2.0, 然后再除以整数b,整数b自动转化为浮点数6.0,计算结果为浮点数0.33
如果除数和被除数都是整数,那么是整除,结果是不大于商数的最大的整数。
如果除数和被除数有浮点数,那么结果就是除法的结果
a/b*1.0
修改为
a/(float)b*1.0
可以得到相同的结果