이번 포스팅에서는 자바(Java)의 자료형 중 하나인 실수 자료형에 대하여 공부를 해보고자 한다.
실수 자료형
자바에서 실수란 소수부나 지수부가 있는 수를 가리키며, 정수보다 훨씬 더 넓은 표현 범위를 가진다.
자바의 기본 타입 중 실수를 나타내는 타입은 다음과 같다.
- float
- double
실수형 데이터의 타입을 결정할 때에는 표현 범위 이외에도 반드시 유효 자릿수를 고려해야 한다.
실수형 | 타입지수의 길이 | 가수의 길이 | 유효 자릿수 |
float | 8 비트 | 23 비트 | 소수 부분 6자리까지 오차없이 표현할 수 있음. |
double | 11 비트 | 52 비트 | 소수 부분 15자리까지 오차없이 표현할 수 있음. |
실수형 | 타입할당되는 메모리의 크기 | 데이터의 표현 범위 | 리터럴 타입 접미사 |
float | 4바이트 | (3.4 X 10-38) ~ (3.4 X 1038) | F 또는 f |
double | 8바이트 | (1.7 X 10-308) ~ (1.7 X 10308) | D 또는 d (생략 가능함) |
자바(Java)에서 실수는 float과 double이 있고 double형을 기본으로 사용한다.
float(4바이트) 형에 비해 double(8바이트) 형이 더 정밀하게 실수를 표현할 수 있다.
public class DoubleEx1 {
public static void main(String[] args) {
double dnum = 3.14;
float fnum = 3.14f;
System.out.println(dnum);
System.out.println(fnum);
}
}
- 3.14는 double형으로 컴퓨터 내부에 저장되어 dnum 값에 대입된다.
- float형으로 대입되는 값 3.14는 double형이 아닌 float형 값이 대입된다는 의미로 F 또는 f를 숫자 뒤에 붙여서 식별해주어야 한다.
(정수 자료형의 long형과 같은 형식이다.)
실수의 표현 방식
컴퓨터에서 실수를 표현하는 방법은 정수에 비해 훨씬 복잡하다.
컴퓨터에서는 실수를 정수와 마찬가지로 2진수로만 표현해야 하기 때문이다.
따라서 실수를 표현하기 위해 다음과 같은 방식이 사용되고 있다.
- 고정 소수점(fixed point) 방식
- 부동 소수점(floating point) 방식
고정 소수점(fixed point) 방식
실수는 보통 정수부와 소수부로 나눌 수 있다.
따라서 실수를 표현하는 가장 간단한 방식은 소수부의 자릿수를 미리 정하여, 고정된 자릿수의 소수를 표현하는 것이다.
하지만 이 방식은 정수부와 소수부의 자릿수가 크지 않으므로, 표현할 수 있는 범위가 매우 적다는 단점이 있습니다.
부동 소수점(floating point) 방식
실수는 보통 정수부와 소수부로 나누지만, 가수부와 지수부로 나누어 표현할 수도 있다.
부동 소수점 방식은 이렇게 하나의 실수를 가수부와 지수부로 나누어 표현하는 방식이다.
앞서 살펴본 고정 소수점 방식은 제한된 자릿수로 인해 표현할 수 있는 범위가 매우 작지만 부동 소수점 방식은 매우 큰 실수까지도 표현할 수 있다.
'Back-End > Java' 카테고리의 다른 글
[Java] 상수와 리터럴 (2) | 2023.01.27 |
---|---|
[Java] 논리 자료형 (0) | 2023.01.26 |
[Java] 문자 자료형 (0) | 2023.01.26 |
[Java] 정수 자료형 (0) | 2023.01.25 |
[Java] 변수(Variable) (0) | 2023.01.25 |