2017-03-29 1 views
-2

두 값을 String으로 변환 한 후 상수 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 (알 수없는 출처) \t at Main.main (Main.java:11) 죄송합니다. – Caggen

답변

0

귀하의 질문은 예상되는 동작은 여기에 구체적으로 무엇

명확하지 않다?

비교 방법에서 생각 프로세스를 이해할 수 없습니다. 더블 원시 변수는 같은

당신이 인 Math.PI와 더블을 비교 wan't 경우, 당신이 "=="연산자를 사용할 수 쉽습니다, 그냥 수행

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

그리고에 대한 런타임 예외가 발생했습니다. 올바른 이중 변수를 스캐너에 전달하지 않았기 때문입니다.

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

관련 문제