제목 | 숫자 연산 관련 | ||
---|---|---|---|
글쓴이 | freeseamew | 작성시각 | 2014/11/09 03:21:00 |
|
|||
어떤 값의 연산된 범위가 커지면 3.56021268054e19 이런 식으로 영문이 포함된 값으로 떨어집니다. 문제는 이렇게 되면 round함수 같은 소수점을 자르는 함수가 먹지를 않더군요 ㅡㅜ 해결방법 아시는 분들의 도움 부탁드립니다. |
|||
다음글 | xampp 관련 초보가 질문드립니다 ㅎㅎ (2) | ||
이전글 | [mysql] MASTER-SLAVE 작업질문입니다. (1) | ||
freeseamew
/
2014/11/10 02:15:03 /
추천
0
|
한대승(불의회상)
/
2014/11/10 09:10:33 /
추천
0
실수연산 사용시 참고 하도록 하겠습니다.
좋은 정보 감사 합니다. |
일단 해결은 아래와 같이 sprintf 를 사용해서 했습니다.
$a = 12345678;
$b = 56456465456;
$c = $a * $b;
return sprintf("%.1f", intval(strval($c)));
이런 소수점 계산의 경우 조금 복잡하긴 하네요 ㅡㅡ;;
서버를 세팅할 수 있다면 GMP같은 것을 사용하라고도 하고, 하지만 저와 같이 호스팅을 이용할 경우는 위의 방법이 괜찮은 것 같습니다.
검색하다 찾은 몇가지 사이트도 공유 합니다.
http://anyx.tistory.com/91
http://kais.tistory.com/entry/PHP-실수형-연산시-정확성-손실-문제Small-loss-of-precision