본문 바로가기
JAVA BASE/variable(변수)

07. [자바] 기본형(primitive type) - 실수형(float, double)

by staticClass 2020. 12. 1.

실수형은 실수를 저장하기 위한 타입으로 float와 double 두 가지가 있으며 각 타입의 변수에

저장할 수 있는 값의 범위는 아래와 같다.

타입 저장 가능한 값의 범위(양수) 정밀도 bit byte
float 1.4 x 10(-45승) ~ 3.4 x 10(38승) 7자리 32 4
-1.4 x 10(-45승) ~ -3.4 x 10(38승)
double 4.9 x 10(-324승) ~ 1.8 x 10(308승) 15자리 64 8
-4.9 x 10(-324승) ~ -1.8 x 10(308승)

 

실수형의 선택 기준

만일 7자리 이상의 정밀도가 필요하다면, 변수의 타입을 double로 해야한다.

double타입은 float 타입보다 정밀도가 약 2배인, 10진수로 15자리의 정밀도를 가진다.

즉  연산속도의 향상이나 메모리를 절약하려면 float를 선택하고

더 큰 값의 범위라던가 더 높은 정밀도를 필요로 한다면 double을 선택해야 한다.

 

 

실수 예제

실수형 값을 출력할 때는 printf메서드의 지시자 '%f'를 사용한다

'%f'는 기본적으로 소수점 6자리까지만 출력하므로 7번째 자리에서 반올림 되어

'9.123457'이 되었다

System.out.printf("f  : %f\n", f);		// f : 9.123457

 

%24.20f는 전체 24자리중에 20자리는 소수점 이하의 수를 출력하라는 뜻이다.

System.out.printf("f : %24.20f\n", f);

 

예제의 코드의 변수 f에 저장하려던 값은 

9.12345678901234567890

저장된 값은

9.12345695495605500000

float타입의 변수 f에 저장하려던 값은 9.12345678901234567890 이지만 저장공간의 한계로

오차가 발생하여 실제 저장된 값은 9.12345695495605500000이다.

float의 정밀도가 7자리 이므로 원래의 값에 7자리의 값만 오차없이 저장된 것이다.

 

 


/*
기존에 알던 내용들은 크게 도움되는게 없었지만
실수의 선택 기준을 확실하게 알수 있어서 좋았던것 같다.
7자리가 안넘어가면 float, 7자리가 넘어가면 double
단순하고 무식하게 기억해야겠다.
*/

 

 

 

5. [JAVA] 기본형(primitive type) - 논리형, 문자형 (boolean, char)

기본형의 보다 세부적인 내용에 대해 살펴보자 논리형 - boolean 논리형에는 boolean 한가지 밖에 없고 변수에는 true, false중 하나를 저장 할수 있으며 기본값(default)는 fasle이다. boolean은 대답(yes/no)

staticclass.tistory.com

 

6. [JAVA] 기본형(primitive type) - 정수형(byte, short, int, long)

정수형에는 크게 4가지가 있으며 각 자료형이 저장할 수 있는 값의 범위가 서로 다르다. 크기순으로 나열하면 다음과 같고, 단위는 byte이다. byte < short < int < long (1byte) (2byte) (4byte) (8byte) byte부..

staticclass.tistory.com

 

댓글