2015-10-19 154 views
0

我試圖解決這個「謎」:爲什麼使用double作爲輸入始終返回0作爲結果?

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class PassingVariables { 

    double answer, myNumber1, myNumber2; 

    public static void main (String[] args) throws Exception { 
     new PassingVariables(); 
    } 

    public PassingVariables() { 
     InputValue1(); 
     InputValue2(); 
     calc((double) myNumber1, (double) myNumber2); 
    } 

    public void InputValue1() { 
     BufferedReader input1 = new BufferedReader (new  InputStreamReader(System.in)); 
     try { 
      System.out.println("Type in a number: "); 
      myNumber1 = Integer.parseInt(input1.readLine()); 
     } catch (Exception e){} 
    } 

    public void InputValue2() { 
     BufferedReader input2 = new BufferedReader (new InputStreamReader (System.in)); 
     try { 
      System.out.println("Type in another number"); 
      myNumber2 = Integer.parseInt(input2.readLine()); 
     } catch (Exception e){} 
    } 

    public double calc(double myNumber1, double myNumber2){ 
     double answer = ((double)myNumber1 + (double)myNumber2); 
     System.out.println("Your number is: " + (double) answer); 
     return answer; 
    } 
} 

的事情是:這段代碼是不是給我回雙打的結果,這是我想要的東西。 每次我穿上了一倍,它給了我作爲一個結果值0.0 但我儘量使用整數,它給了我,結果像

1 + 3 = 4.0

+0

請正確縮進您的代碼並使用Java命名約定。它確實有助於人們閱讀和理解你的代碼,因此更快地提供幫助。 –

+0

對不起,安迪。我仍然在學習,我甚至不知道應該如何正確縮進我的代碼。無論如何謝謝你試圖幫助我。 –

+0

我們都曾經是初學者:)看看@LuiggiMendoza如何做到了這一點 - 在基本層面上,當你寫'''時,更多地縮進'{',當你編寫'}'時出現。這是一個很容易練習的東西,但是儘快進入是一個很好的習慣。 –

回答

1

由於您使用Integer.parseInt(input2.readLine());嘗試改變都parseInt函數線Double.parseDouble(...)

編輯

這裏更新的代碼

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class PassingVariables { 

    double answer, myNumber1, myNumber2; 

    public static void main (String[] args) throws Exception { 
     new PassingVariables(); 
    } 

    public PassingVariables() { 
     InputValue1(); 
     InputValue2(); 
     calc((double) myNumber1, (double) myNumber2); 
    } 

    public void InputValue1() { 
     BufferedReader input1 = new BufferedReader (new  InputStreamReader(System.in)); 
     try { 
      System.out.println("Type in a number: "); 
      myNumber1 = Double.parseDouble(input1.readLine()); 
     } catch (Exception e){} 
    } 

    public void InputValue2() { 
     BufferedReader input2 = new BufferedReader (new InputStreamReader (System.in)); 
     try { 
      System.out.println("Type in another number"); 
      myNumber2 = Double.parseDouble(input2.readLine()); 
     } catch (Exception e){} 
    } 

    public double calc(double myNumber1, double myNumber2){ 
     double answer = ((double)myNumber1 + (double)myNumber2); 
     System.out.println("Your number is: " + (double) answer); 
     return answer; 
    } 
} 
+0

非常感謝,Jags。你是男人! –