>  기사  >  백엔드 개발  >  PHP의 초장수(초대형) 숫자를 사용하여 과학 표기법으로 숫자가 표시되는 것을 방지하는 방법

PHP의 초장수(초대형) 숫자를 사용하여 과학 표기법으로 숫자가 표시되는 것을 방지하는 방법

WBOY
WBOY원래의
2016-05-16 19:55:142109검색

이 기사의 예에서는 숫자가 과학 표기법으로 표시되는 것을 방지하기 위해 PHP가 너무 긴(과대) 숫자 연산을 사용하는 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

PHP에서는 큰 숫자 연산을 계산할 때 오류가 발생합니다. 숫자가 너무 크면 그 값이 과학적 표기법이 됩니다. 따라서 PHP에서 덧셈, 뺄셈, 나눗셈, 거듭제곱 연산, 제곱 연산을 포함한 큰 숫자 연산을 수행하는 방법은 다음과 같습니다. 루트 및 모듈로 연산이 필요합니까?

과학적 표기법 문제를 해결하려면 값을 지정할 때 따옴표 한 쌍을 추가하면 됩니다.

예:

<&#63;php
$n = '22222222222222222222222222220';
echo $n;
&#63;>

따옴표가 없으면 2.22222222222222E가 표시됩니다. 28. 따옴표가 있으면 22222222222222222222222222220이 표시됩니다.

덧셈, 뺄셈, 곱셈과 나눗셈, 거듭제곱 연산, 제곱근, 모듈러 연산을 포함한 매우 큰 수치 연산

PHP의 bcmath 함수를 사용하여 사용자 정의 함수를 생성합니다. 코드는 다음과 같습니다.

<&#63;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 '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;
  }
  $t=preg_replace("/\..*0+$/",'',$t);
  return $t;
}
/*用法举例*/
echo calc('11111111111111111111111111111111110','10','add');
&#63;>

사용방법:

calc(매개변수 1 매개변수 2, 매개변수 3)
매개변수 3은 연산 방법을 지정합니다: 산술 제곱근을 찾기 위한 add, sub, mul, div, pow, mod, sqrt
덧셈, 뺄셈, 나눗셈: 매개변수 1 더하기/뺄셈/곱하기/나누기 매개변수 2
거듭제곱: 매개변수 1을 매개변수 2의 거듭제곱으로 늘렸습니다.
모듈로: 매개변수 1을 매개변수 2로 나눈 나머지입니다.
산술 제곱근: 매개변수 1의 산술 제곱근을 구합니다. 매개변수 2는 효과가 없지만 생략할 수 없습니다.

더 많은 PHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다. "PHP 작업 및 연산자 사용법 요약", "PHP 네트워크 프로그래밍 기술 요약", " PHP 기본 구문 입문 튜토리얼", "PHP 오피스 문서 조작 스킬 요약(워드, 엑셀, 액세스, ppt 포함)", "요약 PHP 날짜 및 시간 사용법》, "php 객체 지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php mysql 데이터베이스 운영 입문 튜토리얼" 그리고 "PHP의 일반적인 데이터베이스 운영 기술 요약"

이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

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