2016-10-18 11 views
-4

私は変数をint型に再定義しようとしましたが、動作していないようです - 私は、int型に変換すると損失が発生するというフラグを取得します。私は、ユーザーからの入力を呼び出すときや、変数の宣言が間違っていると間違ったJOptionPaneを使用しています。文字列をダブルJOptionPaneに変換できません。

ご協力いただければ幸いです。

package pf_javaass01c; 
import javax.swing.JOptionPane; 
public class ConversionCalculator 
{ 
    final static String HEADING = "Conversion Calculator"; 
    final static double CONVERSION = 0.6214; 
    final static double PI = 3.14159; 

    public static void main(String[] args) 
    { 
     // Input Variables 
     double kilometers, convertedKilometers, miles, convertedMiles; 
     double width, length, areaRectangle, perimeterRectangle; 
     double radius, circumference, areaCircle; 

     // Kilometer to Miles Calculator 
     kilometers = JOptionPane.showInputDialog(null, "Please enter a kilometer value you wish to convert to miles;", HEADING,  JOptionPane.QUESTION_MESSAGE); 
     convertedKilometers = kilometers * CONVERSION; 
     JOptionPane.showMessageDialog(null, kilometers + " kilometers is equal to " + convertedKilometers + " miles.", HEADING, JOptionPane.INFORMATION_MESSAGE); 
     } // End of main 

} // End of ConversionCalculator 
+2

かなりのコードが表示されています。正確にはどこにエラーがありますか?これはコンパイル時エラーか実行時エラーですか?これを[mcve]に減らしてください(理想的にはインポートが含まれているので、コピー/貼り付け/コンパイル/実行できます)。 –

+1

'JOptionPane'の' showInputDialog() 'は' String'を返します。キロメートルは「ダブル」です。 doubleにStringを代入することはできません。変換する必要があります。 – Ash

答えて

0

JOptionPaneによって返される値はStringあります。その値をkilometersに設定しようとしています。これはdoubleです。あなたは基本的に球体を三角形の穴に収めようとしています。その結果、エラーが発生します。

解決策は、単にを解析して、を解析するか、文字列を2重に変換することです。これを行うには、Double.parseDouble()を呼び出す:

// get the user input and put it into a string variable first 
String userInput = JOptionPane.showInputDialog(null, "Please enter a kilometer value you wish to convert to miles;", HEADING,  JOptionPane.QUESTION_MESSAGE); 
// parse the user's input and assign the result to kilometers 
kilometers = Double.parseDouble(userInput); 
+0

ありがとうございました! –

+0

@ M.deW私の答えがあなたの質問に答えると思うなら、そのチェックマークをクリックすることでそれを受け入れることを検討してください! – Sweeper

0

Double.parseDouble()doubleに変換するためのユーザ入力を可能とする新しい変数との答えでした!

関連する問題