String を数値として使用していますが、これは問題を処理する正しい方法ではありません。これは、int に解析すると、double の整数部分のみである可能性のある間違った数値が得られるためです。あなたの場合、変換定数はゼロです。コードは次のようになります。
private void btn_convertActionPerformed(java.awt.event.ActionEvent evt) {
double conversionConstant = 0.621;
int input = Integer.parseInt(txt_input.getText());
double kmToMiles = conversionConstant * input;
lbl_converted.setText("" + kmToMiles);
...
}
1.5
これはかなり問題ありませんが、isや NaN (非数値)などの非整数値を入力すると失敗します。
これはあなたの問題に対する完全な解決策になるはずです:
private void btn_convertActionPerformed(java.awt.event.ActionEvent evt) {
final double CONVERSION_CONSTANT = 0.621;
String inputText = txt_input.getText();
double input;
try{
input = Double.parseDouble(txt_input.getText());
double kmToMiles = conversionConstant * input;
lbl_converted.setText("" + kmToMiles);
}catch(NumberFormatException e){
System.out.println("You have typed a wrong input. Only numbers are allowed");
}
}