부동 소수점 방식
- 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야 함
- 컴퓨터에서, 실수를 지수부와 가수부로 표현 함
- 컴퓨터에서는 밑수를 2로 사용
- 정규화 : 가수가, 밑수보다 작은 한 자리까지 가수로 표현 되는 것 (가수<밑수)
컴퓨터에서는 밑수가 2 이므로 정규화를 하게 되면 가수부분의 첫 번째 자리 숫자는 항상 1임
예) 0.2 표현 0.4 X 2-1 정규화 하면 1.6 X 2-3
====> 결론적으로, 항상 1.m * 2의 -n제곱 의 형태
float형과 double형
예제
package ch07;
public class DoubleTest {
public static void main(String[] args) {
double dnum=3.14;
float fnum=3.14F; //리터럴은 지정된 데이터 타입(int)으로 저장 -> 4byte -> 3.14는 4byte에 담긴 너무 크다 -> f붙이기
//만약 파라미터 에러가 날 때, F를 안 붙여줘서 에러가 나는 경우가 많음
System.out.println(dnum);
System.out.println(fnum);
}
}
부동 소수점 방식의 오류
지수와 가수로 나타내는 부동 소수점 방식에서는 지수부가 0을 표현할 수 없기 때문에 약간의 오차가 발생할 수 있다
public class DoubleTest2 {
public static void main(String[] args) {
double dnum = 1;
for(int i = 0; i<10000; i++) {
dnum = dnum + 0.1;
}
System.out.println(dnum);
}
}
결과
오차가 발생할 수 있지만, double로 나타내는게 훨씬 많은 범위의 실수를 나타낼 수 있기 때문에
double 사용 (실수는 거의 double형으로 나타내야 하고, float을 쓰려면 끝에 f 써야함!)
'JAVA' 카테고리의 다른 글
1-7.JAVA 기초 - 자료형(논리형,자료형 없이 변수 사용 방법) (0) | 2022.01.06 |
---|---|
1-6.JAVA 기초 - 자료형(문자) (0) | 2022.01.06 |
1-4.JAVA 기초 - 자료형(자료형의 종류, 정수) (0) | 2022.01.05 |
1-3.JAVA 기초 - 변수 (0) | 2022.01.05 |
1-2.JAVA 기초 - 패키지/클래스 파일/데이터 표현 (0) | 2022.01.05 |