부동소수점 해결방법
마스터욱
0
62
0
0
2019-09-26 04:20:09
$max = 1.83567;
$start = 1.83517;
$result = $max - $start;
echo "result = {$result}"; //0.00049999999999994
위 결과를 0.0005 로 예측했다면 그건 오산이다.
결과는 0.00049999999999994 로 나온다.
이게 바로 부동소수점 연산오류이다.
이것을 해결하는 방법은 뭐 찾아보면 여러가지가 있을수도 있겠지만, 내가 선택한 제일 확실한 방법은 DB에서 SELECT 를 하는 것이다.
select (1.83567 - 1.83517);
=> 0.0005
위 처럼 하면 계산결과가 원하던 0.0005 로 말끔하게 나온다.