실수형 소숫점 단위 까지 표현할 수 있는 자료형 상수 선언시, 0.0f 처럼 f를 붙이면 4byte float 로 표현하고, 0.0 처럼 . 만 붙이면 double 로 표현한다.
float data = 0.1f; // 4byte float
double data2 = 0.2 // 8byte double
실수를 bit 를 표현 하는데에는 IEEE 754 의 표준을 따른다.
실수는 특정숫자를 정확하게 표현하는것이 아니라. 근삿값으로 표현을 합니다.
소숫점 아래의 2진수 비트는 이와같이 표현될 수 있다. 왜냐하면 10진수에서 1 은 0.1 이 10개 모여 1이 되는것으로, 10의 -1 승. 즉 1/10 으로 생각할 수 있다. 2진수에서 , 1 은 첫번째 소숫점 이 2가 되면 위로 올라가 1이 되니까. 0.5로 생각할수 있다. 0.5 + 0.5 = 1.0 이므로. 즉 2의 -1 승. 1/2 로서 0.5 표현할 수 있다. 이렇게, 소숫점 아래로 갈 수록 비트 하나하나가 더 작은 숫자를 표현하는 비트가 되어 특정 비트를 모아 소숫점 아래의 숫자를 근사치로 표현할 수 있게 된다. 바이트가 많을수록 더 낮은 자리의 소숫점까지 표현할 수 있어, 정확도가 증가합니다.
IEEE 754 (IEEE ( 전기 전자 기술자 협회)) 표준에 따라 컴퓨터에서 실수 정보를 어떻게 표현하는지를 정해놓았다.
정수와 실수는 메모리를 다루는 방법이 다르다. 정수 4 와 실수 4 는 비트 표현방식이 다르기 때문에, 정수형과 실수 연산시, 어떤 방식으로 표현할 것인지, 정하고 변환하고 연산하게 된다. 표현체계가 완전히 다르기 때문에, 하나의 표현체계로 바꾼다음 연산이 진행된다. (형변환) 우리가 생각지도 못한 연산이 더 들어가게 되는것이다. 한가지로 통일시키는것도 신경쓰면 좋을것이다.
/*
정수는 정수끼리, 실수는 실수끼리 연산하되,
두 표현방식의 피 연산자가 연산될 경우 명시적으로 변환하자.
*/
float f = 10.2415f + (float)20; // 이렇게