실수
실수
실수는 정수와 다른 형태의 저장 방식인 부동소수점 표기방식에 의해 저장되며, 실수의 저장 원리에서 살펴볼 수 있다. 중요한 특징들을 정리하면 다음과 같다.
실수의 종류는 2가지이다(
float
: 4byte,double
: 8byte)실수의 기본형태는
double
이다.실수가 포함된 계산은 결과가 무조건 실수이다.
실수는 표시하는 값이 정밀하지 않다.
실수는 저장공간의 크기와 관계없이 정수보다 크다.
실수는 순환형 구조를 가지지 않으며, 무한대라는 값을 허용한다.
실수 데모 1
위의 예제를 통해 float
와 double
의 초기화 방식의 차이에 대해 살펴볼 수 있다. double
이 기본형태이기 때문에 3.14
는 별다른 표시가 없다면 double
로 인식된다. 따라서 float
형태로는 저장될 수 없어 오류가 발생하게 된다.
실수 데모 2
위의 예제는 각각 소수점 30자리의 숫자를 float
와 double
형태의 변수에 저장한 뒤 출력했을 때 표시되는 소수점의 길이를 살펴보기 위한 예제이다. 즉, 각각의 실수 형태에 대한 정확도가 얼마나 되는지를 살펴보는 것이 목적이다.
출력 결과는 다음과 같다.
double
이 float
보다 정확도가 높은 것은 사실이나 둘 다 온전한 숫자를 다 포함할 수 없다는 특징을 가지고 있다. 따라서 정확한 계산을 수행해야 할 경우에는 자바에서 기본적으로 제공하는 실수를 이용하여 계산을 하기 어려우며, 별도의 도구를 이용해야 한다.
실수 데모 3
실행하면 다음과 같은 결과가 나온다.
앞서 정수를 살펴볼 때 10 / 3
이 3
임을 확인했으나 위의 코드는 실수가 포함되어있기 때문에 결과가 실수로 나오는 것을 확인할 수 있다. 좀 더 정확히 이야기하면, 계산식에 포함된 가장 큰 데이터 형태에 맞추어 출력된다는 것을 소수점 자리수를 통해 알 수 있다.
자료형의 크기에 대해서는 별도의 문서를 통해 정리하도록 한다.
실수 데모 4
결과는 다음과 같이 출력된다.
출력되는 값에 대한 설명은 다음과 같다.
Infinity : 양의 무한대를 의미한다. 음의 무한대는
-Infinity
이며 둘은 같지 않다.NaN :
Not a Number
의 줄임말이며, 숫자가 아니라는 의미이다.
정수에서는 오류가 발생하지만, 실수에서는 이와 같이 특수값들이 출력되므로 이용에 참고하도록 한다.
Last updated