php关于精准计算的模块 BCMath
Php: BCMath
bc是Binary Calculator的缩写。bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale没有提供,就用bcscale的缺省值。这里大数直接用一个由0-9组成的string表示,计算结果返回的也是一个 string。
bcadd — 将两个高精度数字相加
string bcadd(string left operand, string right operand [, int scale]);
bccomp — 比较两个高精度数字,返回-1, 0, 1
int bccomp(string left operand, string right operand [, int scale]);
bcdiv — 将两个高精度数字相除
string bcdiv(string left operand, string right operand [, int scale]);
bcmod — 求高精度数字余数
string bcmod(string left operand, string modulus);
bcmul — 将两个高精度数字相乘
string bcmul(string left operand, string right operand [, int scale]);
bcpow — 求高精度数字乘方
string bcpow(string x, string y [, int scale]);
bcpowmod — 求高精度数字乘方求模,数论里非常常用
string bcpowmod ( string x, string y, string modulus [, int scale]);
bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=”
string bcscale(int scale);
bcsqrt — 求高精度数字平方根
string bcsqrt(string operand [, int scale]);
bcsub — 将两个高精度数字相减
string bcsub(string left operand, string right operand [, int scale]);
可以参考手册去查这些函数的应用。
bcmath的安装
bcmath这个扩展在php的压缩包中都是有的,需要重新编译一下才能够支持;
cd php-5.2.7/ext/bcmath
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install (make 可以得到so路径)
so路径拷贝到 extension路径
vim php.ini
extension=bcmath.so
重启apach
PHP code?
/*bcsub 函数说明
此函数将二个高精确度的数字相减,传入二个字符串,以左边的 (left operand) 减去右边的 (right operand) 值。scale 是一个可有可无的选项,表示返回值的小数点后所需的位数。*/
//下面的代码我是保证了小数点一位数字
$aa=bcsub(134.7,52.5,1);
echo $aa;//exit;
$bb=bcsub($aa,82.2,1);
echo $bb;//exit;
php关于精准计算的模块 BCMath的更多相关文章
- Python科学计算—numpy模块总结(1)
作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...
- Python科学计算包模块的安装(ubuntu)
Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...
- zipline风险指标计算 (empyrical模块)
概述 量化中,我们经常会遇到各种量化指标的计算,对于zipline来说,也会对这部分计算进行处理,由于指标计算的通用性比较强,所以,zipline单独封装了 empyrical 这个模块,可以处理类似 ...
- Python 科学计算涉及模块
模块1.数据基础 numpy 模块2.数值运算 scipy 模块3.符号运算 sympy 模块4.图形绘制 matplotlib
- 数据分析计算xgboost模块
一.安装xgboost方法 摘要:之前为了安装xgboost,少不了进入各种坑,但最终安装成功了!首先, 准备的工作:,下载mingw64,链接https://pan.baidu.com/s/1i5C ...
- MSP430精准配置高速串口波特率的方法
引言 在实际项目大批量生产调试设备时,笔者发现同样版本的程序在不同设备上运行时效果不一致,一部分设备串口通信正常,另外一部分串口通信不正常.通过示波器对多个设备的串口波特率及系统时钟频率测试, ...
- 数字,字符串,time模块,文本进度条
数字和字符串 数字类型 整形 整数, 1/2/3/12/2019 整形用来描述什么, 身高/年龄/体重 age = 18 height = 180 浮点型 浮点数,小数 salary = 10 pri ...
- Python科学计算发行版—Anaconda
Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖 ...
- php浮点数计算问题
如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个 ...
随机推荐
- weex 创建项目坑2
安装成功weex 创建项目 weex create my-project 提示 需要安装 weexpack Installing 安装失败 后来卸载weex,重新安装weex 执行下面的命令: ...
- 比利牛斯獒犬 flask web
1. 使用 session.get('name') 直接从会话中读取 name 参数的值.和普通的字典一样,这里使用 get() 获取字典中键对应的值以避免未找到键的异常情况,因为对于不存在的键, g ...
- ECMAScript 6 &ECMAScript 5(在线手册)
https://www.w3.org/html/ig/zh/wiki/ES5#.E8.A1.A8.E8.BE.BE.E5.BC.8F ECMAScript 5(在线手册) http://es ...
- sql之临时表
select * from (select * from tb where id<10) as B
- PHP实用小程序(六)
<HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio ...
- IsPostBack深入探讨
1IsPostBack介绍 IsPostBack是Page类有一个bool类型的属性,用来判断针对当前Form的请求是第一次还是非第一次请求.当IsPostBack=true时表示非第一次请求,我们称 ...
- .net 反射构造你自己的“匿名”对象
由于近来项目的底层架构某些特殊需求及场景的需要要求动态build一个对象, 属性名称个类与类型都是外界动态传入的. 不多说废话,直接上我最原始的代码: public static Type GetMy ...
- POJ3020【二分匹配】
思路: ---说给自己 一开始想的是从1-h*w标记整幅图,建图是星号和 {他,与他相连的星号} 建边,肯定要去匹配"*"啊,所以空格一定不会去造,然后就理解成了最小点覆盖,然而对 ...
- LightOJ 1029 【最小生成树】
思路: 利用克鲁斯卡尔算法,最小生成树把边从小到大排序,然后Union: 最大生成树就是把边从大到小排序,然后Union: #include<bits/stdc++.h> using na ...
- 2014-5-10 NOIP模拟赛 by coolyangzc
Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的 ...