我在这里做了一段简单的java代码,它是一个被调用来将华氏温度转换为摄氏温度的方法。但是,当我运行它时,输出始终为0.0
。
我无法输出正确的计算结果。我可能忘了做一些愚蠢的小事,有人可以帮帮我吗?
public class ExampleQ {
public static void main(String[] args) {
System.out.println(Celsius(50));
}
public static double Celsius(double F)
{
return (5 / 9) * (F - 32);
}
}
答案 0 :(得分:7)
答案 1 :(得分:5)
(5/9) 生成一个整数除法,结果为“0”。结果它为整个表达式产生0。试试
return (5.0 / 9) * (F - 32);
答案 2 :(得分:4)
这是解决方案。 在线编译器Ideone http://ideone.com/zRyG80
进行测试只需将return (5 / 9) * (F - 32);
替换为return (F - 32) * 5 / 9;
因为原因是运营商执行的顺序。在你的代码中,在乘法之前执行,即5/9 = 0。
class Main {
public static void main(String[] args) throws java.lang.Exception {
System.out.println(Celsius(50));
}
public static double Celsius(double F) {
return (F - 32) * 5 / 9;
}
}
输出
10.0
答案 3 :(得分:3)
5 / 9
返回0,因为您正在执行整数除法。
使用5.0 / 9.0
代替
答案 4 :(得分:2)
(5/9)被解释为整数并四舍五入为0.0。
要避免整数,可以将其替换为(5.0 / 9)。
答案 5 :(得分:2)
否则您可以使用以下代码
return (5d / 9d) * (F - 32);