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中的时间处理
Oct 09 PHP
用PHP实现小型站点广告管理
Oct 09 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
微信支付开发维权通知实例
Jul 12 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP使用函数用法详解
Sep 30 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
微信支付开发交易通知实例
2016/07/12 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
浅谈Node.js之异步流控制
2017/10/25 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
用实例分析Python中method的参数传递过程
2015/04/02 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python批量图片处理简单示例
2019/08/06 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
党员个人党性分析材料
2014/12/18 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js