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实现图片简单上传
Oct 09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 PHP
PHP页面中文乱码分析
Oct 29 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 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的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
jQuery 表格插件整理
2010/04/27 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
Python中常见的数据类型小结
2015/08/29 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
python中np是做什么的
2020/07/21 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
中专生自荐信
2013/10/12 职场文书
企划专员岗位职责
2013/12/09 职场文书
《手指教学》反思
2014/02/14 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
副处级干部考察材料
2014/05/17 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
HttpClient实现文件上传功能
2022/08/14 Java/Android