double是小数类型的数字类型,而int是整数类型的数字类型;
两种类型可以发生自动类型转换。但需要达成一定的条件; 发生自动转换数据类型的条件如下:
1)参与运算的2个数据必须相兼容(比如double和int都是数字类型的,)
2)必须一边的数据类型表示范围小(int),一边的表示范围大(double),并且把小的转大的不丢失精度。
3)参与运算(算数运算和赋值运算)的操作数和结果类型必须一致,当不一致时,满足下面条件时,系统自动完成类型转换
两种类型兼容:
例如:int和double兼容
目标类型大于源类型
例如:double>int
4)在自动转换中,转换是不会丢失精度的,如果丢失精度,那么这个转换肯定不会自动完成。经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么int类型会自动转换成double类型。
如果一个操作数为double型,则整个表达式的运算结果为double类型。
当需要丢失精度的转换时(如double3.14到int3的转换),系统是不会帮我们自动转换的; 需要我们手动写代码完成转换,转换的语法为:(数据类型名)待转换的值。
|