>  기사  >  백엔드 개발  >  PHP가 고정밀 계산 기능을 처리하는 방법

PHP가 고정밀 계산 기능을 처리하는 방법

小云云
小云云원래의
2018-03-17 10:21:281969검색

이 기사에서는 주로 PHP가 고정밀 계산 기능을 처리하는 방법을 공유합니다. 주로 두 가지 그래프 작성 방법을 공유합니다.

방법 1:

PHP는 임의의 정밀도 수학적 계산을 위한 이진 계산기(이진 계산기)를 제공합니다. 이 계산기는 문자열 형식으로 설명된 모든 크기와 정밀도의 숫자를 지원합니다.

bcadd — 더하기
bccomp — 비교
bcp — 위상 나누기
bcmod — 나머지 찾기
bcmul — 곱하기
bcpow — 거듭제곱
bcpowmod — 먼저 거듭제곱한 다음 나머지 구하기
bcscale — 모든 함수에 대한 소수점 이하 자릿수 설정
bcsqrt — 제곱근 찾기
bcsub — 빼기

방법 2:

최근 쇼핑몰에서 WeChat을 통해 결제한 주문의 가격이 1페니 미만인 경우가 많았습니다. 조사 결과 이는 PHP 부동 소수점 연산의 정확성 때문이었습니다.

PHP 부동 소수점 연산의 정확성 때문이었습니다. Niao 형제의 Bolg가 자세한 설명을 했습니다. http://www.laruence.com/2013/03/26/2884.html,
십진수를 이진수로 표현하는 경우 0.58은 이진수에 대해 무한히 긴 값입니다.

0.58의 이진수 표현은 기본적으로(52비트)입니다. 0010100011110101110000101000111101011100001010001111

0.57의 이진 표현은 기본적으로 00100011110101110000101000111101011100001010 00111입니다. 101

부동소수점 숫자로 변환(64비트 배정밀도)

0.58 -> 0.57999999999999996

0.57 -> 0.5699999999999995

0.58*100 = 57.9 9999 9999 ( int)(0.58*100) = 57

해결책:

(int)((0.58*1000)/10) = 58

관련 권장 사항:

MySQL 공통 날짜 및 계산 함수 예제 설명

PHP 확률 계산 함수

PHP에서 함수 실행 시간을 계산하는 방법 _PHP 튜토리얼

위 내용은 PHP가 고정밀 계산 기능을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.