이 글에서는 과학 표기법으로 숫자가 표시되는 것을 방지하기 위해 매우 긴(매우 큰) 숫자 연산을 사용하는 PHP의 방법을 주로 소개하고, PHP 수학 연산 및 문자열 연산에 관련된 기술을 포함합니다. 그것이 모두에게 도움이 되기를 바랍니다. 이 기사의 예에서는 숫자가 과학적 표기법으로 표시되는 것을 방지하기 위해 PHP가 초장수(초대형) 숫자 연산을 사용하는 방법을 설명합니다. 참고용으로 공유합니다.
자세한 내용은 다음과 같습니다.
PHP에서는 큰 숫자 연산을 계산할 때 오류가 발생합니다. 숫자가 너무 크면 값이 과학적 표기법이 됩니다. 따라서 PHP에서 덧셈, 뺄셈을 포함한 매우 큰 숫자 연산을 수행하는 방법은 다음과 같습니다. 곱셈과 나눗셈, 거듭제곱 연산, 제곱근, 모듈로 연산은 어떻게 되나요?
과학 표기법 문제를 해결하려면 값을 할당할 때 따옴표 한 쌍을 추가하세요.
예:
<?php $n = '22222222222222222222222222220'; echo $n; ?>
그렇지 않은 경우 따옴표를 추가하면 2.2222222222222E+28이 표시됩니다. 따옴표를 추가하면 2222222222222222222220
추가, 뺄셈, 곱셈 및 나눗셈, 거듭제곱 연산, 제곱근 및 모듈로 연산을 포함한 초대형 수치 연산이 표시됩니다. 사용자 정의 함수를 생성하는 PHP의 bcmath 함수, 코드는 다음과 같습니다.
<?php function calc($m,$n,$x){ $errors=array( '被除数不能为零', '负数没有平方根' ); switch($x){ case 'add': $t=bcadd($m,$n); break; case 'sub': $t=bcsub($m,$n); break; case 'mul': $t=bcmul($m,$n); break; case 'p': if($n!=0){ $t=bcp($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; } $t=preg_replace("/\..*0+$/",'',$t); return $t; } /*用法举例*/ echo calc('11111111111111111111111111111111110','10','add'); ?>
Usage:
calc(매개변수 1 매개변수 2, 매개변수 3)
매개변수 3은 연산 방법을 지정합니다: 더하기, 빼기, mul, p로 나누기 , pow의 거듭제곱, 모듈로, sqrt를 사용하여 산술 제곱근을 구합니다.더하기, 빼기 및 나누기: 매개변수 1 매개변수 더하기/빼기/곱하기/나누기 2
Power: 매개변수 1의 매개변수 2의 거듭제곱입니다.
모듈: The 매개변수 1을 매개변수 2로 나누어 얻은 나머지.
산술제곱근: 매개변수 1의 산술제곱근을 구합니다. 매개변수 2는 효과가 없지만 생략할 수 없습니다.
위 내용은 과학 표기법으로 숫자가 표시되는 것을 방지하기 위해 매우 긴 숫자 연산을 사용하는 PHP의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!