안드로이드 개발 질문/답변
(글 수 45,052)
부동소수점 연산이 되는 스마트폰이 많이 없나요?
구글의 개발 가이드에 보니까.. float 를 사용하지 말라고 하고..
부동소수점 연산이 하드웨어적으로 되는 단말기가 별로 없다는 듯이 이야기 하는데.
진짜 별로 없나요?
그럼 int 값만 가지고 오브젝트 같은 것들이 자연스럽게 동작이 되는지요?
구글의 개발 가이드에 보니까.. float 를 사용하지 말라고 하고..
부동소수점 연산이 하드웨어적으로 되는 단말기가 별로 없다는 듯이 이야기 하는데.
진짜 별로 없나요?
그럼 int 값만 가지고 오브젝트 같은 것들이 자연스럽게 동작이 되는지요?
2010.04.23 14:14:48
어플리케이션 구동환경이
부동소수점 연산을 하드웨어적으로 처리하는 기기일수도 있고,
아닐 수도 있으므로, float 연산을 자제하라는 말일거예요.
계산이 안되는것은 아니지만, 소프트웨어적으로 처리하기 때문에
굉장히 느려지죠.
^^
2010.04.23 16:59:57
ARM에는 하드웨어 적으로 부동소수점 유닛(FPU)이 있기는 합니다. 이름은 잘 생각이 나지 않네요.
그런데 이 FPU가 열라 느려서 그냥 소프트웨어적으로 fixed point로 구현한것이 더 빠릅니다.
안드로이드의 경우 아마도 fixed point로 처리하지 않을까 생각됩니다.
하지만 이 fixed point의 경우도 그냥 정수보다는 느리기 때문에 float의 사용을 자제하라고 합니다.
애니메이션의 경우나 OpenGL등의 경우는 거의 float를 사용하기 때문에 용도에 맞게 사용하시면 될듯 합니다.
가능한한 자제하고 꼭 필요한 경우에만 사용하는 것이 좋을듯 합니다.
플래시 라이트 AS2.0 Number 변수같은 경우도 모두 fixed ponint로 처리 되어 있거든요.
그래서 AS3.0에서 int가 생겨난 이유기도 합니다.