AP计算机教程2-6:变量类型转换
尝试使用System.out.println()
输出以下算式的值。
1 / 3 1.0 / 3 1 / 3.0 (double) 1 / 3
它们的答案各是什么?
当你在Java中进行整数除法时,Java将默认你希望得到整数结果,因而会把小数部分给完全舍去。但当把整数int
和浮点数double
混在一起进行计算时,Java则会以浮点数输出结果。如果希望把整数变成浮点数,需要用(double)
进行类型转换(cast)的操作。相对的,可以用(int)
将浮点数转换为整数。在这里cast的词义和用粘土塑造陶器(casting a pot in clay)是较为一致的。在Java中,变量类型兼容时可以使用类型转换将一种类型的变量转换成另一种。
1.0
除以3
的结果正确么?事实上,Java中的double
最多能输出14至15位十进制小数。这是由每个double
变量所占的内存bit位数有限而导致的自然结果。计算机进行的任何浮点运算在精度上都要受到类似限制。
0:00
True or false: Java rounds up automatically when you do integer division.
对于整数除法,Java并不进行四舍五入,而是仅保留结果的整数部分。回忆一下小学时学习的整除和余数吧。
2
True or false: casting always results in a double type.
变量类型转换将把变量转换为括号
()
内标示的类型,但如果两种类型本身不兼容,代码将无法被正确编译。2
Which of the following returns the correct average when 3 values had been added to an integer total?
需要先把
total
和/或3
转换为(double)
,Java才会正确进行浮点数除法。3
0 条评论