'Programming/JAVA source ErrorWhySolution'에 해당되는 글 2건

  1. 2014.06.11 오류: 기본 클래스 xxxx 을(를) 찾거나 로드할 수 없습니다. 1
  2. 2014.06.08 소수점 연산 // 반올림 2

오류: 기본 클래스 xxxx 을(를) 찾거나 로드할 수 없습니다.

|

/* 본 블로그에, 휴대폰으로 접속시에는 소스가 제대로 보이지 않을 수 있습니다.

소스가 보이지 않을 시에는, 모바일 화면 제일 하단에 있는 'PC화면' 을 클릭해 들어가서 PC모드로 변경을 하면 소스가 보입니다. */



가끔 소스 짜는 연습을 할 때, 생성해 놓은 클래스파일에서 단순히 기존 소스를 지우고 새로 짜는 경우가 있는데, 이때 간혹 컴파일 오류가 뜬다.


오류: 기본 클래스 xxxx 을(를) 찾거나 로드할 수 없습니다.


위처럼 뜨곤 하는데, 거두절미하고 해결방안은


프로젝트 익스플로러 - 해당 패키지명에 마우스 우클릭 - Properties - Run/Debug Settings 을 클릭하면, 우측 하얀색 창이 보인다.

그 창에 있는 목록들을 모두 삭제하고 다시 컴파일 하면 제대로 실행된다.




'Programming > JAVA source ErrorWhySolution' 카테고리의 다른 글

소수점 연산 // 반올림  (2) 2014.06.08
And

소수점 연산 // 반올림

|

/* 본 블로그에, 휴대폰으로 접속시에는 소스가 제대로 보이지 않을 수 있습니다.

소스가 보이지 않을 시에는, 모바일 화면 제일 하단에 있는 'PC화면' 을 클릭해 들어가서 PC모드로 변경을 하면 소스가 보입니다. */





//Error

위 소스는 결과값이 3.000000199999~ 이렇게 나온다. 


여기서 아래처럼 소숫점 뒤에 0을 하나 더 추가시키니,

num1=1.00000001;

num2=2.00000001;


결과값이 3.00000002 이렇게 깔끔하게 나왔다.


무엇 때문에 결과값이 다른걸까....



//Why?

컴퓨터는 2진수 부동소수점으로 소수점 이하 자리수를 표현한다. 그 표현의 문제로 인해서, 소수점 이하의 연산에 대해서는 정확도가 100%가 안된다.


우선, 항상 기억해둬야 하는것이 소수점 연산은 항상 오류가 발생한다는 점이다. 0.01 이 표현이 안되기 때문이다.


컴퓨터에서 부동 소수는

(1/2) * n1 + (1/4) * n2 + (1/8) * n3 + (1/16) * n4 ...와 같은 합으로 표현된다. 그리고 0.01은 이런 값의 합으로 표현할 수가 없다.


반면, 

2.5 = 2 + 1/2, 

2.25 = 2 + 1/4

와 같은 수는 표현이 가능해서 제대로 출력이 된다.

출처 : http://bit.ly/SuYt51



//Solution!

그냥 소수점 반올림을 했다. 하하하하하하하~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



//출력결과

result = 3.00000002


result0 = 3.0

result1 = 3.0

result2 = 3.00000002


And
prev | 1 | next