2015-06-08 28 views
1

好的,我對整體成品有問題,我是新手,所以我無法找到出問題的地方。我輸入我的轉換類型例如:1(英寸 - 釐米)說,我想知道多少釐米5英寸,它會導致說:12.7釐米= 55.0?讓我覺得它爲什麼這樣做,任何幫助都會很棒!轉換計算器,結果問題..不正確的隨機答案?

switch(Integer.parseInt(jTextField1.getText())){ 
case 1: 
InchesToCm(); 
break; 
case 2: 
CmToFeet(); 
break; 
case 3: 
MetresToYards(); 
break; 
case 4: 
KmToMetres(); 
break; 
default: 
jLabel8.setText("Error, try again"); 
break; 

} 








}           


private void InchesToCm() { 
double inches, centimetres; //identify variables 
String messageOut; 

inches = Double.parseDouble(jTextField2.getText());   //get the text 
centimetres = (inches*2.54);         //preform 
messageOut = centimetres + "cm = " + Math.round(inches) + inches; //msg 
jLabel8.setText(messageOut); 
} 
private void CmToFeet() { 
double feet, centimetres; 
String messageOut; 

feet = Double.parseDouble(jTextField2.getText()); 
centimetres = (feet*30); 
messageOut = centimetres + "cm = " + Math.round(feet) + feet; 
jLabel8.setText(messageOut); 

} 
private void MetresToYards() { 
double metres, yards; 
String messageOut; 

yards = Double.parseDouble(jTextField2.getText()); 
metres = (yards*0.91); 
messageOut = metres + "m = " + Math.round(yards) + yards; 
jLabel8.setText(messageOut); 
} 
private void KmToMetres() { 
double miles, kilometres; 
String messageOut; 

miles = Double.parseDouble(jTextField2.getText()); 
kilometres = (miles*1.6); 
messageOut = kilometres + "km = " + Math.round(miles) + miles; 
jLabel8.setText(messageOut); 
} 
+0

我不是100%確定的,但我認爲你只是在最後連接兩英寸。具體在這裏「Math.round(英寸)+英寸;」。嘗試將其交換到Math.round(英寸)+「英寸」; – Sh4d0wsPlyr

回答

2

您正在連續打印inches變量兩次並且讓自己感到困惑。 Math.round返回值負責5,並且inches本身的打印(double)負責5.0。連接,它讀取55.0。我懷疑你想要的"inches",而不是印刷:

messageOut = centimetres + "cm = " + Math.round(inches) + " inches"; 

類似的變化應該在其它方法制成。