본문 바로가기
프로그래밍/java

실수자료형 float, double

by mooyou 2021. 8. 21.
728x90
300x250

 

실수형이란?

소수을 갖는 수를 저장하기 위한 자료형

float, double 2가지 타입이 있다.

float(4바이트), double(8바이트) 크기를 가지고 있다.

 

 

실수형은 부동 소수점 방식으로 실수를 지수부와 가수부로 표현한다. 무한의 실수를 표현하기 위한 방식이다.

예를들어서 2의 128승이면 2부분이 가수부이고 128부분이 제곱의 위치인 지수가 된다.

 

 

 

4바이트 이면 32비트로

맨첫번째는 부호비트 8비트는 지수부(지수) 가수부(실제 숫자를 나타내는 수)

// 예를 들어서 32비트이면 맨앞에 1칸은 부호비트로 음수와 양수를 판단하고 지수부분을 8비트, 가수부분은 나머지 32비트가 된다.

정확성은 long형보다 float가 떨어지지만 훨씬 더 float이 지수부가 있기 때문에 큰수를 표현할 수 있다.

 

실수는 기본적으로 double로 처리하는데

float형으로 실수를 표현할때는 숫자에 f, F를 붙여줘야한다.

 

ex)

package chapter01;

public class DoubleEx1 {
	public static void main(String[] args) {
    	double dnum = 3.14;
        float fnum = 3.14F;
        
        System.out.pringln(dnum);
        System.out.println(fnum);
    }
}

 

double, float 형의 특성

지수와 가수로 표현하는 부동 소수 점은 0을 표현할 수 없기 때문에 우리가 예상하지 못한 뒷자리 소수점이 찍혀서 부정확하게 나온다.

 

public class test02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double dnum=1;
		
		for(int i=0; i<10000;i++) {
			dnum+=0.1;//dnum=dnum+0.1;
		}
		System.out.println(dnum);
	}

}

 

0.1을 계속 더해보면

 

1001.000000000159 

이런식으로뒤에 예상치 못했던 소수점들이 나온다.

 

 

 

 

 

이미지는 규나미님 블로그 참조

https://nasanx2001.tistory.com/entry/8-%EA%B0%80%EC%88%98%EB%B6%80%EC%99%80-%EC%A7%80%EC%88%98%EB%B6%80

 

8. 가수부와 지수부

먼저 이그림을 잘 살펴보자. 32비트일때의 경우와 64비트의 경우 두가지의 지수부 가수부 부분을 잘그려놓은 표이다. 설명은 32비트 기준으로 한다. 가수부 : 2라는 숫자 부분을 보통 가수부라고

nasanx2001.tistory.com

 

 

 

 

 

 

728x90
반응형

'프로그래밍 > java' 카테고리의 다른 글

[JAVA] 자료형 없이 변수 사용하기  (0) 2021.08.24
boolean 논리형 자료형  (0) 2021.08.23
문자 세트, 인코딩  (0) 2021.08.20
JAVA:: 변수와 자료형 데이터 타입  (0) 2021.08.19
[JAVA] 음의 정수 표현  (0) 2021.08.18

댓글