반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

GBEY

[JAVA] 자바 독학기 #5 - 실수 자료형들(feat. 얄팍한 코딩사전) 본문

Back-end

[JAVA] 자바 독학기 #5 - 실수 자료형들(feat. 얄팍한 코딩사전)

리스보아 2023. 8. 23. 15:13
반응형

실수 자료형들

 

 

 

🔸목차

float과 double

float과 double의 연산

 

 


 

🔸float과 double?

자료형 크기
float 4byte
double 8byte
double d1 = 0.1;
double d2 = 0.2;

double d3 = d1 + d2; // 0.3 아님. 부동소수점 때문

 

 

* 부동소수점 

실수를 2진수로 표현하면서 수를 정확히 표현하지 못하는 문제가 있음(대충 이해하자면)

 

float보다 double이 범위도 넓고, 정밀도도 높다.

 

 

float과 double의 정밀도?

: double이 더 정밀하게 표현

double dNum = 0.123123123123123123123; // 0.123123123123123123123
float fNum = 0.123123123123123123123f; // 0.12312312

 

 

float과 double의 특징

- float에는 숫자 뒤에 f나 F를 붙여야함

붙이지 않으면 double로 인식하기 때문에 float에 할당하려고 하면 에러가 난다.

float f1 = 1.23f;
double d1 = 1.23;

 

- float에는 double을 담을 수 없음 (반대는 가능)

float f2 = d1; // Error
float f2 = (float) d1; // 가능

 

- float과 double에 정수를 대입하면

 >> 묵시적 형변환이 일어남

 >> 가능한 최대 정확도로 표현됨

 

 

 

 

🔸float과 double의 연산

 

- float과 double의 연산은 double을 반환

 

- 부동소수점 때문에 float, double들을 더하면 오차가 생김

>> BigDecimal 클래스를 사용해서 해결

 

- 정수 자료형들과의 연산

>> 정수 자료형과 실수 자료형의 연산은 실수를 반환

>> double 혹은 float로 저장하기

 

- 실수 계산을 정확하게 하려면(double임을 명시하려면) .0을 붙여주기

double d1 = 5 / 2;  // 2.0
double d2 = 5.0 / 2; // 2.5
double d3 = 5 / 2.0; // 2.5
double d4 = (double) 5 / 2; // 2.5

 

- 정수 자료형에 실수 자료형을 강제로 넣으면 소숫점 이하 '버림'

 

- 정수/실수간, 다른 숫자 자료형간 비교연산 가능

 

 

반응형