嘿,伙计们,我是一名新的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");
有人可以向我解释一下吗?!
答案 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
和
整数/整数=整数
会导致精度损失。因此您必须将其转换为float
或double
类型。
答案 2 :(得分:0)
你正在进行整数除法,我相信你想要
System.out.println(a + " degrees °C match "
+ ((((double) 9) / 5) * a + 32) + "°F");