2.1.1 숫자 타입(Numeric types)
2.1.1 숫자 타입(Numeric types)
정의: Float — 배정밀도 IEEE 64비트 부동소수점 숫자를 나타냅니다.
정의: Int — 정수(integral number)를 나타냅니다.
모든 Int는 Float가 기대되는 곳에서 사용될 수 있어요. 즉 Int는 Float에 할당 가능(unify)합니다. 하지만 그 반대는 성립하지 않아요. Float를 Int에 할당하면 정밀도 손실이 발생할 수 있기 때문에 암시적으로 허용되지 않습니다.
출처: Numeric Types
본문
Int와 Float의 할당 관계
Haxe의 타입 시스템에서 Int는 Float로 항상 승격(promote)될 수 있어요. 정수는 소수 부분이 없는 부동소수점으로 표현해도 정밀도를 잃지 않기 때문이죠.
반대로 Float를 Int에 할당하는 것은 암시적으로 금지됩니다. 예를 들어 3.7을 Int에 넣으면 소수 부분이 잘려나가 정보가 손실되기 때문이에요. 이런 손실을 감수하고 싶다면 명시적인 캐스팅(casting)을 사용해야 합니다.
타입 간의 유니피케이션
유니피케이션(unification)은 두 타입이 호환되는지 판단하는 Haxe 타입 시스템의 핵심 메커니즘이에요. Int가 Float와 유니파이되는 이유는, 정의상 모든 정수가 부동소수점으로 정확히 표현될 수 있기 때문이에요.