Java,从方法返回值
我在这里做一段简单的java代码,它是一个将华氏温度转换成摄氏温度的方法。但是,每当我运行它时,输出总是Java,从方法返回值,java,methods,return,return-value,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(doubl
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);
}
}
错误是
在Java中5/9=0
尝试:
5/9
返回0,因为您执行的是整数除法
使用5.0/9.0
代替(5/9)被解释为整数并四舍五入到0.0
为了避免使用整数,您可以将其替换为(5.0/9)。或者您可以使用下面的代码
return (5d / 9d) * (F - 32);
(5/9)生成一个整数除法,结果为“0”。因此,它为整个表达式生成0。试一试
return (5.0 / 9) * (F - 32);
这是解决办法在线编译器Ideone测试 只需更换
返回(5/9)*(F-32)代码>带返回(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你可能会感到惊讶,但是5/9==0在Java:)5.0/9不是这样的..而且不仅仅是在Java:)太棒了,我知道它是这样的小东西,我通常不会被这样的事情难倒。感谢+1提供联机编译器和调试工具的链接
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;
}
}