类型转换如何在java中工作?

时间:2013-10-25 19:15:23

标签: java casting int implicit-conversion explicit

  1. 为什么c的值是2.0和2.5,尽管它们具有相同的数据类型
  2. 如何在a / b

    中进行转换
    public static void main(String[] args) 
            {
                int a = 5,b=2;
                float c;
                c=a/b;
                System.out.println(c);
                c=(float)a/b;
                System.out.println(c);
            }
    

3 个答案:

答案 0 :(得分:3)

答案在于理解尽管将c声明为float,但仍然会使用a/b进行整数除法。 Java中的整数除法会截断任何小数部分(因此它可以保持为int)。只有这样,它才会在分配到float后隐式转换为c,并且会打印2.0

float(float)a/b的投射会将a更改为5.0f,并在将结果分配给c之前强制浮点除法,所以正确结果2.5已打印。

答案 1 :(得分:0)

在第一个语句中,计算a/b。由于两个变量都是整数,因此结果也是整数:2。在您的第二个声明中,a首先转换为float,然后除以b。由于其中一个值为float,因此结果为float2.5

答案 2 :(得分:0)

第一个分区是int / int - >结果。 第二个是Float / int, - >浮动结果。