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


Posted in PHP onApril 01, 2016

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

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

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

如:

<?php
$n = '22222222222222222222222222220';
echo $n;
?>

如果不加引号,显示2.2222222222222E+28,加引号后显示22222222222222222222222222220

超大数值运算,包括加减乘除,幂运算,平方根,取模运算.

使用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 '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');
?>

使用方法:

calc(参数1参数2,参数3);
参数3指定运算方法:add加,sub减,mul乖,div除,pow幂,mod取模,sqrt求算术平方根
加减乖除:参数1 加上/减去/乘以/除以 参数2
幂:参数1 的 参数2 次方.
模:参数1 除以 参数2 得到的余数.
算术平方根:求 参数1 的算术平方根.参数2不起作用,但不能省略.

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

PHP 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
async和DOM Script文件加载比较
Jul 20 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 PHP
Zend Studio使用技巧两则
Apr 01 #PHP
PHP数学运算与数据处理实例分析
Apr 01 #PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 #PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 #PHP
php获取本机真实IP地址实例代码
Mar 31 #PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 #PHP
php中使用GD库做验证码
Mar 31 #PHP
You might like
Php Cookie的一个使用注意点
2008/11/08 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python常见数字运算操作实例小结
2019/03/22 Python
如何获取Python简单for循环索引
2019/11/21 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
兼职学生的自我评价
2013/11/24 职场文书
优秀民警事迹材料
2014/01/29 职场文书
锦旗标语大全
2014/06/23 职场文书
大四毕业生自荐书
2014/07/05 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
《窃读记》教学反思
2016/02/18 职场文书
python基础之类方法和静态方法
2021/10/24 Python