2011-08-01 5 views
1

가능한 중복 :
Retain precision with Doubles in java왜이 두 개의 double을 추가해도 정답이 나오지 않는 이유는 무엇입니까?

import static java.lang.System.out; 
public class q2{ 
    public static void main(String args[]){ 
     double x=4.02, y=0.05; 
     out.println(x+y); 
    } 
} 

출력 :

4.069999999999999

왜 그것을 출력하고 있습니까? 나는 그것이 4.07 일 것이라고 생각했다. 이것이 java에서 일어나는 이유를 설명해주십시오.

정확하지 않은 질문 제목은 죄송합니다. 이보다 더 좋은 제목을 가질 수 없습니다.

+1

이유는 무엇입니까? x와 y의 실제 값을 고려하면 정답입니다. – Jacob

+0

질문은 미래의 계산에서 4.07이 4.06999999999999와 다를 것이라고합니다. 특정 정밀도에 대한 최종 답을 원한다면 끝에서 반올림하십시오. –

+2

부동 소수점 산술 연산은 모든 프로그래머의 삶에서 중요한 이정표가됩니다. 축하해. :) –

답변

관련 문제