Java中的显式转换整数浮点System.out

时间:2014-07-01 12:48:30

标签: java

嘿,伙计们,我是一名新的Java学习者。我有这个代码的问题: 我不明白为什么它只打印a的值,而不是((9/5)* a + 32) 例如,如果a = 50,((9/5)* a + 32)= 82但是当我编译它时,它打印a = 50和((9/5)* a + 32)= 82。

    Scanner tt = new Scanner(System.in);
            a = tt.nextInt();
            System.out.println(a + " degrees °C match  " + ((9/5)*a+32) + "°F");

有人可以向我解释一下吗?!

3 个答案:

答案 0 :(得分:1)

使用整数数学完成9/5。在整数中,9/5是1。

尝试:

(9*a)/5+32

或:

(int)((9.0/5)*a+32)

答案 1 :(得分:0)

尝试使用

 1.80 * a + 32

 9 / 5.0 * a + 32

您的代码中发生的事情是您将integer除以integer

  

整数/整数=整数

会导致精度损失。因此您必须将其转换为floatdouble类型。

答案 2 :(得分:0)

你正在进行整数除法,我相信你想要

System.out.println(a + " degrees °C match  "
    + ((((double) 9) / 5) * a + 32) + "°F");