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 相关文章推荐
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
php生成shtml类用法实例
Dec 09 PHP
php身份证号码检查类实例
Jun 18 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
python实现连接mongodb的方法
2015/05/08 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
python多进程读图提取特征存npy
2019/05/21 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
python 模拟登录B站的示例代码
2020/12/15 Python
Python中生成ndarray实例讲解
2021/02/22 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
戴尔美国官网:Dell
2016/08/31 全球购物
探矿工程师自荐信
2014/01/24 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
大学生社会实践感想
2015/08/11 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android