Heim  >  Artikel  >  Backend-Entwicklung  >  PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法_php技巧

PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法_php技巧

WBOY
WBOYOriginal
2016-05-16 19:55:142062Durchsuche

本文实例讲述了PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法。分享给大家供大家参考,具体如下:

PHP计算大数值运算时会出错,当数字太大时,数值会变成科学计数.那怎么来进行PHP超大数值运算,包括加减乘除,幂运算,平方根,取模运算呢?

要解决科学计数的问题,只要赋值时加一对引号即可.

如:

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

如果不加引号,显示2.2222222222222E+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操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn