본문 바로가기

컴퓨터언어/JAVA(자바)

[JAVA강좌] 4강 기본자료형 - 실수관련 - float, double

728x90
반응형

 

 

 

 

 

 

- 이번 강좌에서는 기본 자료형 중 실수 관련을 보도록 하겠습니다.

- 1강 변수 선언에서도 자료형 종류를 볼 때 바이트라는 개념을 적어드렸는데, 개념을 먼저 잡고 공부해 주세요.

  정수형 문자형 실수형 논리형
1바이트 byte     boolean
2바이트 short char    
4바이트 int   float  
8바이트 long   double  

- 컴퓨터는 기계인데, 기계가 정보를 이해하는 방법은 사람과 다를 수밖에 없습니다.

- 평소 사용하는 숫자나 알파벳 문자를 컴퓨터 내부에서는 어떻게 저장하고 표현하고, 이해하는지 알아보겠습니다.

 

 

 

 

 

 

 

 

 

1. 실수자료형


- 변수는 컴퓨터 내부의 메모리 공간에 저장됩니다.

- 메모리는 프로그램이 실행되는 작업 공간입니다.

- 즉, double a; 라고 선언하면, 메모리에 8바이트(double바이트) 크기의 공간이 a라는 이름으로 할당됩니다. 

- 그래서 각각의 자료 유형이 몇 바이트를 갖는지 알고 있으면 좋습니다. 

- 위에서도 표로 보여드렸는데 실수만 다시 정리해서 보겠습니다.

자료형 바이트 크기 범위
float 4 부호 1비트, 지수부 8비트, 가수부 23비트로 총 32비트(4바이트)
double 8 부호 1비트, 지수부 11비트, 가수부 52비트로 총 64비트(8바이트)

 

- 실수는 부동 소수점 방식을 이용하여 표현합니다.

- 그래서 부호비트 1비트, 지수부, 가수부로 구성합니다.

- 근사치이기 때문에 항상 오차가 발생합니다.

 

 

 

 

1) float형

- float는 4바이트입니다.

- 부호 1비트, 지수부 8비트, 가수부 23비트로 총 32비트(4바이트)로 이루어져 있습니다.

- float 같은 경우는 접미사로 [ f ]  혹은 [ F ]를 붙여 줘야 합니다.

- 이제 예제를 실습해 보겠습니다. 

- 패키지(ch03_real_number_type)과 클래스(Ex01_Float.java)를 추가해 주세요. 

- 기초적 작업을 모르는 분은 아래 주소를 클릭하고 보고 오세요.

https://ossam5.tistory.com/613

 

[JAVA강좌] 1강 JAVA변수와 자료형

1. 프로젝트 패키지 생성 및 자바 파일 생성 - 앞으로의 강좌에서는 패키지 생성 및 자바 파일 생성하는 것을 보여드리진 않겠습니다. - 지금 잘 확인해 주시기 바랍니다. 1) 프로젝트 패키지 생성

ossam5.tistory.com

 

 

 

## float 자료형 선언 실습1 - Ex01_Float.java

package ch04_real_number_type;

public class Ex01_Float {

	public static void main(String[] args) {
		//float num1 = 1.234; //접미사를 붙이지 않아 에러
		
		float num2 = 1.234F;
		
		System.out.println(num2);
	}

}

 

- num1은 뒤에 접미사를 F를 붙이지 않았기 때문에 에러입니다.

- num2는 실수 뒤에 F를 붙였기 때문에 에러가 아닙니다.

- 프로젝트에 에러가 발생되면 보기가 안 좋기 때문에 앞에 //로 한 줄 주석 처리했습니다. 

- 테스트해 볼 때는 //를 빼보면 에러 표시가 보일 겁니다. 

해당 라인에 에러가 있는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

728x90
반응형

 

 

 

 

 

 

 

2) double형

- double는 8바이트입니다.

- 부호 1비트, 지수부 11비트, 가수부 52비트로 총 64비트(8바이트)로 이루어져 있습니다.

- float와는 다르게 접미사를 붙이지 않아도 잘 됩니다. 

- 그래서 float보다는 double을 선호해서 씁니다.

 

 

## double 자료형 선언 실습1 - Ex02_Double.java

package ch04_real_number_type;

public class Ex02_Double {

	public static void main(String[] args) {
		double num1 = 1.234567;
		double num2 = 1;
		
		System.out.println(num1);
		System.out.println(num2);
	}
}

 

- 접미사 없이도 잘 처리가 되는 것을 확인할 수 있습니다. 

- num2는 정수 1을 담아봤습니다. 그리고 출력했을 때의 결과가 어떤지 보도록 하겠습니다.

 

 

## double 자료형 선언 결과1 - Ex02_Double.java

 

- 정수를 처리해도 실수로 반환되는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

** 숫자 자료형 중 실수형은 모두 확인을 했습니다.

** 다음 강좌를 논리형을 확인해 보도록 하겠습니다. 

 

 

 

728x90
반응형