[Java] 부동 소수점

Kim Hyen Su·2024년 4월 6일
0

📐Java

목록 보기
11/18
post-thumbnail

출처

부동 소수점이란?


(부호)(m : 가수)(n : 지수) → 가수 m은 0 <= m < 1 범위를 갖습니다.

ex) 1.23 을 부동소수점 표현으로 변경하면 0.123 X 10^1

자바에서는 실수 표현 시, 넓은 범위를 표현하기 위해서 부동 소수점 방식을 채택했습니다.

하지만, 부동 소수점 방식은 항상 오차가 존재한다는 단점이 있습니다.

부동 소수점의 오차

컴퓨터는 모든 값을 이진수로 표현하는데, 실수를 이진수로 표현 시 대부분 십진수 소수의 근사값으로 표현합니다.

이로 인해서 변수에 값을 저장 시 오차가 발생하게 됩니다.

예를 들면, 다음과 같은 경우가 있습니다.

일반적으로 생각하면, 10이라는 결과가 출력돼야 하지만 실제로 자바에서는 10.09999999... 라는 예상치 못한 값이 발생하게 됩니다.

float & double 정밀도

float형 타입이 소수 6자리 까지는 정확하게 표현할 수 있으나, 그 이상은 정확하게 표현하지 못합니다.

double형 타입은 소수부분 15자리 까지 오차없이 표현할 수 있다. 하지만 그 이상의 소수 부분을 표현할 때는 언제나 작은 오차가 발생하게 됩니다,

profile
백엔드 서버 엔지니어

0개의 댓글