黑马程序员技术交流社区

标题: 类型转换 [打印本页]

作者: yangjijin    时间: 2014-6-29 11:17
标题: 类型转换
类型转换[15分钟]
1)        自动类型转换
a)        代码示例:

b)        在上面的示例中,我们将一个整数变量赋值给了一个双精度浮点型变量,得到的结果却是一个小数:2.0。这是一个带小数部分的数,也就是double类型的数据。
c)        在这里,数据类型自动发生了变化。
d)        作用:就是使数据类型自动发生转变,不需要我们的参与。
e)        要让数据类型自动发生变化,有一定的规则。
f)        类型提升规则:
1.        在以下条件下,系统自动完成类型转换
a)        两种类型兼容
i.        例如:int 和 double 兼容
b)        目标类型大于源类型
i.        例如:double 型 大于 int 型
2.        对于表达式
a)        如果一个操作数为double型,则整个表达式可提升为double型
b)        示例:

2)        强制类型转换
a)        示例:

b)        可以看到,Eclipse已经提示有错误了。也就是说:一些数据类型之间不能自动转换。我们需要强制类型转换。
c)        语法:(类型名)表达式
d)        作用:对数据类型进行强制转换
e)        使用强制类型转换后,就不会出错了:

f)        示例1:

g)        特点:
1.        数据精度发生变化:将小数部分丢弃,而且没有四舍五入。
h)        示例2:

i)        需要对double类型数据进行强制类型转换,将出错的代码修改为:
int  now = before + (int)rise;
j)        小结:
1.        圆的半径是4.5,计算出圆的面积:
a)        圆的面积 = 3.14159*4.5*4.5
b)        计算出来后用整数表示
public class Xiaojie3 {
        public static void main(String[] args) {
                double r = 4.5;
                double pi = 3.14159;
                int area = (int) (pi * r * r);
                System.out.print("半径为:" + r + "的圆的面积是:" + area);
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2