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 相关文章推荐
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
逐步提升php框架的性能
Jan 10 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
js简单时间比较的方法
2016/08/02 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
实践Vim配置python开发环境
2018/07/02 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
学生出入校管理制度
2014/01/16 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
建筑安全生产责任书
2014/07/22 职场文书
党小组推荐意见
2015/06/02 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
关于使用Redisson订阅数问题
2022/01/18 Redis
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记