簡體   English   中英

Java,從方法返回一個值

[英]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);
    }
}

錯誤是整數除法

在Java 5 / 9 = 0

嘗試:

return (5.0 / 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM