本帖最后由 黑骏马 于 2013-7-24 22:33 编辑
类型自动转换规则:
算术运算和赋值运算,参与运算的两个操作数的类型必须相同,运算后的结果的类型也相同。
如果操作数的类型不相同,满足下面条件时,系统自动完成类型转换:
1两种类型兼容,如int与double,double>int,自动转换为double
2对于表达式,如果一个操作数为double型,则整个表达式可提升为double型
int a=10,b=3;
double c=a/b;
存在一个数据类型自动转换,(错误:c被自动转换为int型了 。) c由int型被自动转换为double型了。
如果要得到c为小数的结果,可以根据两个条件,加一个double型操作数1.0
double c=1.0*a/b
这样a,b就被自动转换为double型,结果c也是double型了。
---------------------------------
补充:
double c=a/b; // c由int型的3转换为double型的3.0,输出时因为WriteLine()调用ToString()所以显示为3
double c=1.0*a/b // a和b先被转换为double型,结果c为3.333……,输出显示也是3.3333333333……
|