小明期末考试语文89;数学97,英语85;用代码求三课的总分与平均分
int chinese=89;int math=97;int english=85;
int sum=chinese+math+english;//总分
double avg=(chinese+math+english)/3;//平均分(复习小括号的用法)
根据上次说的参与运算的两方类型必须一致, avg是double类型,右边是int类型,为什么赋值不报错,因为其进行了自动类型转换,先右边的转换成double再进行运算
参与运算(算术运算和赋值运算)的操作数和结果类型必须一致,但是运算的两方类型不一样时,如果满足一下条件会自动进行类型转换
a: 参与运算的类型必须能兼容
例如 int与 double int与float float与double 因为都是数值型的,所以可以进行转换,但是decimal与它们不能进行自动类型转换
b:转换总是从"小"向"大"进行转换
这里的"小"于"大"不是指数字大小而是指其取值范围
int 取值范围在正负20亿左右,double取值范围在10的-308次方到10的308次方,所以当参与运算的两方相遇会自动向double转换,其他的自己查找MSDN或者百度资料