本文目录一览:
- 1、ThinkPHP出现Call to undefined function bcadd怎么解决
- 2、php 字符串0.01124怎么转换成浮点型不失精度
- 3、请教,php保留两位小数,但不四舍五入
- 4、PHP-bc函数及其应用详解
- 5、PHP计算百分比的公式函数,如何把数值装进计算
ThinkPHP出现Call to undefined function bcadd怎么解决
主要是因为ThinkPHP框架程序需要用到PHP bcmath扩展,而在默认我们安装或者编译PHP的时候没有一并编译进来。
我们有两个方法解决这个问题,一来重新编译PHP,把bcmath 重新添加编译,只是这个过程需要一些时间,或者我们下载PHP源码到服务器中,然后类似前天安装soap扩展一样的单独编译enable启动。这里,老蒋选择后者。
第一、选择PHP版本进入目录
这里我看到这位网友使用的是PHP5.3.17而且在当初是从WDCP面板5.2升级的,根目录有的安装包没有删除,所以我就不要去PHP官方网站删除,直接cd进入/ext/bcmath目录。
第二、编译启动bcmath过程
代码如下
/usr/local/php/bin/phpize
./configure --with-php-config=/www/wdlinux/php/bin/php-config --enable-bcmath
make make install
执行完毕之后,我们可以看到 :
代码如下
/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/
这样子的目录URL地址,这里记录下来,然后添加到对应的PHP版本PHP.INI文件最后一行。
代码如下
extension=/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/bcmath.so
第三、重启生效
代码如下
service httpd restart
从探针中可以看到bcmath扩展已经启动生效,安装ThinkPHP程序环境已经没有问题,网友告知已经可以解决问题,看来就是这个扩展作怪导致无法安装,与此同时,如果有缺少其他PHP扩展,也是用这个方法安装
更多问题可以去php中文网问答社区提问,大神在线帮你解决,希望对你有帮助
php 字符串0.01124怎么转换成浮点型不失精度
使用(float)强转即可:
?php
$str = '0.01124';
$num = (float)$str;
var_dump($num);
/*
float(0.01124)
*/
请教,php保留两位小数,但不四舍五入
使用bc一类的函数,按字符串方式运算即可。
/**
* 数值非四舍五入保留两位小数
* @author Zjmainstay
* @website
* @param $num 数值
* @return 保留两位小数
*/
function getNum($num, $scale = 2) {
$numStr = (string)$num . str_repeat('0', $scale);
//匹配精度前的数值
if(preg_match('#^\d+\.\d{0,'.$scale.'}#', $numStr, $match)) {
return $match[0];
} else {
return '0';
}
}
echo getNum(10.0253) . "\n";
echo getNum(0.5) . "\n";
PHP-bc函数及其应用详解
bcadd —— 两个任意精度数字的加法计算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcadd ( string $num1 , string $num2 , ?int $scale = null ): string
注:对 num1 和 num2 求和。
参数:
num1 — 左操作数,字符串类型。
num2 — 右操作数,字符串类型。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。
返回值: 以字符串返回两个操作数求和之后的结果。
范例:
bcsub —— 两个任意精度数字的减法 (PHP 4, PHP 5, PHP 7, PHP 8)
bcsub ( string $num1 , string $num2 , ?int $scale = null ): string
注: num1 减去 num2 。
参数:
num1 — 左操作数,字符串类型。
num2 — 右操作数,字符串类型。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。
返回值: 以 string 类型返回减法之后的结果。
范例:
bcmul —— 两个任意精度数字乘法计算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcmul ( string $num1 , string $num2 , ?int $scale = null ): string
注: num1 乘以 num2 。
参数:
num1 — 左操作数,字符串类型。
num2 — 右操作数,字符串类型。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。
返回值: 以 string 类型返回减法之后的结果。
范例:
bcp —— 两个任意精度的数字除法计算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcp ( string $num1 , string $num2 , ?int $scale = null ): string
注: num1 除以 num2 。
参数:
num1 — 左操作数,字符串类型。
num2 — 右操作数,字符串类型。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。
返回值: 以 string 类型返回减法之后的结果。
范例:
bccomp —— 比较两个任意精度的数字 (PHP 4, PHP 5, PHP 7, PHP 8)
bccomp ( string $num1 , string $num2 , ?int $scale = null ): int
注: 比较 num1 和 num2 , 并且返回整型数字的结果。
参数:
num1 — 左边的运算数,是一个字符串。
num2 — 右边的运算数,是一个字符串。
scale — 可选的 scale 参数被用作设置指示数字, 在使用来作比较的小数点部分。
返回值: 两个数相等时返回 0; num1 比 num2 小时返回 -1; 其他则返回 1。现在 scale 可以为 null。
范例:
bcmod —— 任意精度数字取模 (PHP 4, PHP 5, PHP 7, PHP 8)
bcmod ( string $num1 , string $num2 , ?int $scale = null ): string
注: 对 num1 使用 num2 取模。 除非 num2 是零,否则结果必定和 num1 有相同的符号。
参数:
num1 — string 类型的被除数。
num2 — string 类型的除数。
scale — 现在 scale 可以为 null。
返回值: 返回字符串类型取模后的结果,如果 num2 为 0 则返回 null。
范例:
bcpow—— 任意精度数字的乘方 (PHP 4, PHP 5, PHP 7, PHP 8)
bcpow ( string $num , string $exponent , ?int $scale = null ): string
注: num 的 exponent 次方运算。
参数:
num — string 类型的底数。
exponent — string 类型的指数。 如果指数不是整数,将被截断。 指数的有效范围取决于平台,但起码支持 -2147483648 到 2147483647 的范围。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。
返回值: 返回字符串类型的结果。
范例:
bcpowmod —— 先取次方然后 取模 。 (PHP 5, PHP 7, PHP 8)
bcpowmod ( string $num , string $exponent , string $modulus , ?int $scale = null ): string
注: 先取次方然后取模。
参数:
base — 左操作数。它是一个字符串类型的参数。
exponent — string 类型的指数。 指数的正确操作数。
modulus — string 类型的 参 数。 接受表示模数的操作数。
scale — 一个整数类型参数。它说明 ( base exponent %mod ) 结果中小数点后的位数。其默认值为 0。
返回值: 该函数将结果作为字符串返回。或者,如果模数为 0 或指数为负,则返回 False。
范例:
bcscale —— 设置/获取所有 bc math 函数的默认小数点保留位数 (PHP 4, PHP 5, PHP 7, PHP 8)
bcscale ( int $scale ): int
设置所有 bc math 函数在未设定情况下的小数点保留位数。
bcscale ( null $scale = null ): int
注: 获取当前的小数点保留位数。
参数:
scale — 小数点保留位数。
返回值: 设置的时候,返回之前的小数点保留位数。否则就是返回当前的位数。
范例:
bcsqrt —— 任意精度数字的二次方根 (PHP 4, PHP 5, PHP 7, PHP 8)
bcsqrt ( string $num , ?int $scale = null ): string
注: 返回 num 的二次方根。
参数:
num — string 类型的操作数 。
scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。
返回值: 以 string 类型返回二次方根的结果,如果 num 是负数则返回 null。
范例:
PHP计算百分比的公式函数,如何把数值装进计算
1、按题意字面理解,不用函数,直接在单元格输入公式“=25/336”,回车,即可返回所需比例值。 2、如果336人是一列(如A1:A336)姓名明细,25人是在另列(如B1:B336)用“派出”、“留用”、“等待”等字样标出,则可在任意单元格输入公式“=COUNTIF(B1:B336,"派出")/COUNTA(A1:A336)”进行计算。 建议,将你的示例上传,以便有的放矢。