[英]Java, returning a value from a method
我在這里做了一段簡單的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);
}
}
(5/9)產生一個整數除法,結果為“0”。 結果它為整個表達式產生0。 嘗試
return (5.0 / 9) * (F - 32);
這是解決方案。 在線編譯器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
5 / 9
返回0,因為您正在執行整數除法。
請改用5.0 / 9.0
(5/9)被解釋為整數並四舍五入為0.0。
要避免整數,可以用(5.0 / 9)替換它。
或者你可以使用下面的代碼
return (5d / 9d) * (F - 32);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.