2012-02-01 7 views
1

계산은 소수점 이하 두 자리에 두 개의 부동 소수점 숫자의 차이를 해결하기 :자바 - 나는 다음과 같은 코드를 작성했습니다 오류

double p = (Math.round((Double.parseDouble(a) - Double.parseDouble(a))*100))/100; 

ab 소수 자릿수와 숫자 문자열 배열의 값입니다 , 분명히 String의 형식으로되어 있습니다. 나는 복식에 문자열 번호를 변환하고 그들과 계산을 수행하기 위해 노력했지만, 제대로 동작하지 않습니다이 오류가 발생합니다 :

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "N/A" 
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) 
    at java.lang.Double.parseDouble(Unknown Source) 

추가 정보 :이 웹에서 데이터를 사용하고 듯 전에는 작동하지만 지금은 종류의 버그가있는 것으로 보입니다. 이 문제를 어떻게 해결할 수 있습니까? 문제는 무엇입니까?

+0

a의 값은 무엇입니까? –

+3

'a'또는 'b'가 "N/A"와 같습니다. 이것은 문제입니다. –

+0

이 문자열에서 도트를 쉼표가 아닌 구분 기호로 사용하는지 확인하십시오. – ka3ak

답변

5

변수 ab의 형식이 잘못되었습니다. "N/A"가 적절하지 않습니다. double.

어떻게 받고 있는지 게시하십시오.

+0

이것은 문제를 확인하는 데 도움이되었으며 지금 작업 중입니다. 그것을 지적 해 주셔서 감사합니다, 내가 그것을 놓친 방법을 모르겠어요! – mino

0

하여 오류의 근본은 a 또는 bN/A의 값이 의미 java.lang.NumberFormatException: For input string: "N/A"

입니다.

0

코드에 b가 없습니다. 다음과 같이하려고하는 경우 :


String[] a = {"123","23"} ; 
double p = (Math.round((Double.parseDouble(a[0]) - Double.parseDouble(a[1]))*100))/100; 
System.out.println(p); 

당신은 실수가있을 수 있습니다. 그것은 나를 위해 잘 인쇄하기 때문에.

관련 문제