2015-06-08 27 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"; 

类似的变化应该在其它方法制成。