2017-03-29 15 views
-2

私は、double型(ユーザが入力したもの)を定数Math.PIと比較するプログラムを作成しようとしています。 charとcharを比較します。エラーが発生していますが、コードをどこで変更するかわかりません。すべてのヒント/ヘルプは非常に高く評価されています!doubleをMath.PIに変換する(doubleをStringに変換する)

import java.util.Scanner; 

public class Main { 

    private static int matches = 0; 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter value to compare"); 
     double compare = scan.nextDouble(); 
     compare(compare); 
    } 

    public static int compare(double value){ 

     String input = String.valueOf(value); 
     String original = String.valueOf(3.523); 
       //String.valueOf(Math.PI); 

     if(input.charAt(0) == 3){ 
      for(int i = 3; i <= input.length(); i++){ 
       if(input.charAt(i) == (original.charAt(i))){ 
       matches++; 
       } 
      } 
      return matches;   
     } else 
      return matches; 
    } 
} 
+0

**表示されるエラーは何ですか?スレッド "メイン" java.util.InputMismatchExceptionで –

+0

@OliverCharlesworth例外java.util.Scanner.throwFor(不明なソース)java.util.Scanner.nextで \t(不明なソース)で \t java.util.Scannerで \t .nextDouble(Unknown Source) \t at Main.main(Main.java:11)​​ このことについて言及して申し訳ありません! – Caggen

答えて

0

あなたの質問は具体的に、ここで予想される動作は何

明確ではないでしょうか?

私はあなたの思考プロセスをcompareメソッドで理解できません。

あなたがにMath.PI二重を比較するwan't場合、二重のは原始的な変数であるとして、あなたは「==」演算子を使用することができます簡単ですが、ちょうど行います

if (scannedValue == Math.PI) 
      System.out.println ("values are equals"); 

とのためにランタイム例外は、正しいdouble変数をスキャナに渡さなかったためです。

https://docs.oracle.com/javase/7/docs/api/java/util/InputMismatchException.html

関連する問題