실수형("doubles")은 다음과 같은 형태의 문장으로 지정할 수 있다.
정수의 크기는 실행환경에따라 다르다.(platform-dependent) 보통 최대값이 약 ~1.8e308에 14자리의 정밀도(64 bit IEEE format)인 경우가 많다.주의 |
여기서 0.1 이나 0.7같은 단순한 소수값이 PHP 내부에 저장될 때 아주 약간의 그 값에 오차가 생길 수 있다는 것을 알아야 한다. 문제는 그 작은 오차로 인해 다음의 예와 같은 명백히 잘못된 결과가 나올 수도 있다는 점이다. : floor((0.1+0.7)*10)의 식은 일반적인 실행 환경에서는 8이 아닌 7을 반환한다. 함수의 괄호안에 있는 값이 7.9999999999...가 되기 때문이다. 이는 유한한 십진수로 분수를 정확하게 표현하기 불가는 하다는 것과 일맥상통한다. 예를 들자면 분수 1/3 을 십진수로 표현하자면 0.3333333. . .이 된다. 따라서 실수 결과값에 대해서는 마지막 자리의 값을 믿지 말도록 하고, 실수끼리는 = 등의 '같다' 비교를 하지 않도록 하자. 만약 여러분이 좀더 높은 정밀도를 필요로 한다면 arbitrary precision math functions 이나 gmp에 있는 함수들을 사용하기 바란다. |