因为1默认的是int型的常量,所以1/2的输出结果为了与被除数一致就输出0(0.5进行int类型转换后就变成了0)
这里需要注意的就是C语言除法中,结果的数据类型是会转换成被除数的数据类型的。
看下面示例:
#include<iostream>
using namespace std;
int main(){
cout<<(1/2)<<endl;
cout<<(double(1)/2)<<endl;
int a = 4;
int b = 3;
float d = 5;
int c = a/b; //变量c的结果就是1,本来4/3=1.333(为了与被除数a的类型一致,所以取了整数部分,舍去小数部分)
cout<<c<<endl;
float e = d/a; //e的值就是1.25,因为d是float类型的
cout<<e<<endl;
return 0;
}
运行结果: