문제: 0.111 값과 0.111값을 비교 인간의 사고방식으로는 0이 출력되어야 하는데 -값이 출력되는 현상이 발생한다.
ex)
$abc - $abc2
$abc 와 $abc2 값 출력해봐도 0.111로 같은 값이 출력된다.
floor($abc*10000000)
floor($abc2*10000000)
로 데이터를 찍어 봐았다.
1109999
1110000
와 같이 출력되는 것을 확인했다.
내부적으로 데이터값이 뭔가 이상한것을 알게 되었다.
해결방법 : strval() 함수로 실수를 문자형으로 바꿔서 비교하면 됨
strval()함수를 사용해서 고정값을 문자열로 변경해서
아래와 같이 실행했더니 값이 자동으로 float 로 변환하며 연산하여 0값이 정상적으로 출력된다.
strval($abc)-strval($abc1)
'개발 > php' 카테고리의 다른 글
php curl 설치 확인 방법 (0) | 2021.01.27 |
---|---|
php 리캡차 g-recaptcha-response 안 받아지는 오류 (0) | 2021.01.19 |
php 특수문자 이용 체크 정규식 (0) | 2021.01.19 |
failed to open stream: Permission denied (0) | 2021.01.19 |
php 배열 날짜별로 sort 정렬 (0) | 2021.01.19 |
댓글