부동소수점 수는 소수점 뒤에 자릿수가 0개 이상 있는 수예요. -2.4, 0.1, 3.14, 5., 16.984025, 1024.0 등이 여기에 해당해요.
부동소수점 타입마다 소수점 뒤에 저장할 수 있는 자릿수가 달라요. 이것을 정밀도라고 해요.
Go에는 두 가지 부동소수점 타입이 있어요.
float32: 32비트 (정밀도 약 6~9자리).float64: 64비트 (정밀도 약 15~17자리).
이것이 기본 부동소수점 타입이에요.보다시피 두 타입은 저장할 수 있는 자릿수가 서로 달라요. 즉, float32에 원주율을 저장하려고 하면 처음 6~9자리만 저장돼요 (마지막 자리는 반올림돼요).
기본적으로 Go는 부동소수점 수에 float64를 사용해요. 다만 다음 경우는 예외예요.
float32인 변수에 할당되거나,float32인 함수에서 반환되거나,float32() 함수에 인자로 전달될 때예요.math package에는 유용한 수학 함수가 많이 들어 있어요.
부동소수점 타입의 값을 같은지 비교할 때는 항상 주의해야 해요. 같은 값을 나타내는 것처럼 보이는 값도 실제로는 다를 수 있거든요.
부동소수점 수에 대한 짧은 소개는 0.30000000000000004.com에서 볼 수 있어요. Float Toy page에는 부동소수점 수의 비트가 실제 부동소수점 값으로 어떻게 변환되는지 잘 설명해 주는 멋진 그림이 있어요.