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 相关文章推荐
spl_autoload_register与autoload的区别详解
Jun 03 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
php堆排序(heapsort)练习
Nov 13 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
PHP生成唯一订单号
2015/07/05 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python flask实现分页的示例代码
2018/08/02 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python csv文件记录流程代码解析
2020/07/16 Python
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
起诉状范本
2015/05/20 职场文书
校园新闻稿范文
2015/07/18 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
分享3个非常实用的 Python 模块
2022/03/03 Python
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技