Java,从方法返回一个值

时间:2013-04-10 06:24:46

标签: java methods return return-value

我在这里做了一段简单的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);
    }
}

6 个答案:

答案 0 :(得分:7)

错误为Integer division

在Java 5 / 9 = 0

尝试:

return (5.0 / 9) * (F - 32);

答案 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);