2014-08-31 64 views
-2

我不能得到輸出給旁邊的任何數字0.0我在這裏做錯了什麼?我在這個價格計算器上做錯了什麼?

int num1 = 0;  
double d1 = 3.25, d2 = 0.45; 
double numdozen = num1/12; 
double numlooseeggs = num1 - (numdozen * 12); 
double totaldozen = numdozen; 
double totalloose = numlooseeggs; 

Scanner fromKeyboard = new Scanner(System.in); 

System.out.println("How many eggs do you want? They are $3.25/dozen or $.45/egg."); 
num1 = fromKeyboard.nextInt(); 



double sum = totaldozen + totalloose; 

System.out.println("$" + sum); 
+1

執行計算你從鍵盤 – fvu 2014-08-31 23:25:38

+0

你的問題不清楚得到NUM1後。請讓你的問題易於理解。歡迎來到StackOverflow。 – afzalex 2014-08-31 23:34:50

+3

@afzalex他的問題對我來說很清楚。 – 2014-08-31 23:44:25

回答

2

double numdozen = num1/12;

這初始化numdozen爲0.0,這可能不是你的意圖(如果這是你的意圖,只需將其設置爲0.0)。

numlooseeggs也被初始化爲0.0,以及totaldozentotalloose

我不認爲你打算所有的人都爲0。

最後double sum = totaldozen + totalloose;設置爲0,無論分配給num1什麼的。

你可能想要做的獲取用戶輸入後,計算非恆定的雙打什麼:

num1 = fromKeyboard.nextInt(); 
double numdozen = (double)num1/12; 
double numlooseeggs = num1 - (numdozen * 12); 
double totaldozen = numdozen; 
double totalloose = numlooseeggs; 

請注意,您應該投num1除以12之前增加一倍,或numdozen會如果NUM1 0 < 12.

+0

評論只是因爲這個答案沒有明確地使用這些術語,但它可能值得OP通過一些關於參考和價值類型的文獻來閱讀。我剛剛在一個快速搜索中發現了這個相關的問題。這不完全是同一個問題,但鑑於這是一個問題,我猜在這裏閱讀將有助於未來的問題。 http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – 2014-09-01 00:49:37

+0

非常感謝你!我的教授告訴我們,在獲得用戶輸入之前有一種方法來初始化一個int值,並且仍然返回正確的輸出結果,但我一直試圖在整個週末包圍我的頭,而且你比他做得更有意義 – 2014-09-01 05:48:10

1

你塞汀一切沒什麼

int num1 = 0;         0 

double d1 = 3.25, d2 = 0.45; 

double numdozen = num1/12;      0/12 = 0 
double numlooseeggs = num1 - (numdozen * 12); 0 - (0 * 12) = 0 
double totaldozen = numdozen;     0 
double totalloose = numlooseeggs;    0 
1

你演算在獲取用戶輸入之前查看所有值,因此num10,強制所有其他值爲0。把後你把輸入,這樣的計算:

int num1 = 0; 
// don't do calculations that depend on input yet 

Scanner fromKeyboard = new Scanner(System.in); 

System.out.println("How many eggs do you want? They are $3.25/dozen or $.45/egg."); 
num1 = fromKeyboard.nextInt(); 

// put the calculations that depend on input here 
double d1 = 3.25, d2 = 0.45; 
double numdozen = num1/12.0; 
double numlooseeggs = num1 - (numdozen * 12); 
double totaldozen = numdozen; 
double totalloose = numlooseeggs; 

double sum = totaldozen + totalloose; 

System.out.println("$" + sum);