반응형
일. 서언
우리는 php 개발을 할 때 부동 소수점형의 문제를 자주 겪는데, 특히 금액에 관한 부분은 가감산(加运算山)이 필요하기 때문이다.소수점의 자릿수가 비교적 많을 때, 왕왕 낮은 수준의 실수를 범하기 쉽다.php의 정밀도 계산과 패키지의 작은 demo를 기록한다.
2. php에 관한 고정밀 문제
1.개념해석
이 문장의 해석이 가장 분명하다.
php 고정밀 계산 문제
2, 고정밀 수치 대비 크기 문제
아래의 이 문장은 매우 잘 서술되어 있다.
프로젝트 PHP 부동 소수점 계산 문제 임시 발행
3. 캡슐화된 작은 데모
//$m과 $n은 들어오는 두 수치를 나타내며, 주로 이 두 수치 사이의 비교이다
//$x는 들어오는 방법을 나타냅니다. 예: add, sub 등
//$scale은 들어오는 소수점 자리수를 나타냅니다.이건 필요에 따라 변경하시면 됩니다
public function calc($m,$n,$x,$scale){
$errors=array(
'피제수는 0이 될 수 없다',
'음수는 제곱근이 없다'
);
switch($x){
case 'add':
$t=bcadd($m,$n,$scale);
break;
case 'sub':
$t=bcsub($m,$n,$scale);
break;
case 'mul':
$t=bcmul($m,$n);
break;
case 'div':
if($n!=0){
$t=bcdiv($m,$n);
}else{
return $errors[0];
}
break;
case 'pow':
$t=bcpow($m,$n);
break;
case 'mod':
if($n!=0){
$t=bcmod($m,$n);
}else{
return $errors[0];
}
break;
case 'sqrt':
if($m>=0){
$t=bcsqrt($m);
}else{
return $errors[1];
}
break;
}
return $t;
}
호출 방법:
$result= $this->calc(2.001,3.002,'sub',3);
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php ob_start()를 이용하여 출력과 선택적 출력을 지웁니다 (0) | 2022.07.22 |
---|---|
php 프로그램이 node.js 프로그램과 go 프로그램을 수신합니다 (0) | 2022.07.22 |
mysql 두 테이블에서 중복되지 않는 데이터 가져오기 (0) | 2022.07.21 |
mysql은 쿼리 결과 필드에 기본값을 사용합니다 (0) | 2022.07.21 |
php에서 python으로 첫날 (0) | 2022.07.21 |