精华内容
下载资源
问答
  • php中bcsub的用法

    千次阅读 2020-10-29 17:21:19
    bcsub — 2个任意精度数字的减法 bcsub ( string $left_operand , string $right_operand [, int $scale = int ] ) : string 左操作数减去右操作数. <?php $a = '1.234'; $b = '5'; echo bcsub($a, $b); // -3 ...

    bcsub — 2个任意精度数字的减法
    bcsub ( string $left_operand , string $right_operand [, int $scale = int ] ) : string
    左操作数减去右操作数.

    <?php $a = '1.234'; $b = '5'; echo bcsub($a, $b); // -3 echo bcsub($a, $b, 4); // -3.7660 ?>

    bcadd() - 2个任意精度数字的加法计算

    展开全文
  • php Call to undefined function bcsub()

    千次阅读 2019-09-29 14:20:37
    安装完php5.6以后,安装文章链接 ...把项目引入,项目中提示这个错误 ...Call to undefined function bcsub() 在 .configure时我们在 --enable-sockets \ 下加一句 --...

    安装完php5.6以后,安装文章链接 https://blog.csdn.net/wangxinxinsj/article/details/101672343
    把项目引入,项目中提示这个错误
    点击方法进去,发现是bcmath扩展 没有开启

    Call to undefined function bcsub() 
    

    在 .configure时我们在 --enable-sockets \ 下加一句

    --enable-bcmath \
    

    然后再重启编译,make install 等等。
    重启php,杀掉进程,再启动即可

    展开全文
  • $authserver = bcsub($communityID, '76561197960265728') & 1; // Get the third number of the steamid $authid = (bcsub($communityID, '76561197960265728')-$authserver)/2; // Concatenate the STEAM_...
  • $authserver = bcsub($communityID, '76561197960265728') & 1; // Get the third number of the steamid $authid = (bcsub($communityID, '76561197960265728')-$authserver)/2; // Concatenate the STEAM_...
  • PHP中的精确计算bcadd,bcsub,bcmul,bcdiv 引言:一定要确保数据的准确性。这是一个好的程序员的基本素养。 <?php /** * 精确加法 * @param [type] $a [description] * @param [type] $b [description] */ ...
    PHP中的精确计算bcadd,bcsub,bcmul,bcdiv
    引言:一定要确保数据的准确性。这是一个好的程序员的基本素养。
    
    <?php
    /**
     * 精确加法
     * @param [type] $a [description]
     * @param [type] $b [description]
     */
    function math_add($a,$b,$scale = '2') {
    	return bcadd($a,$b,$scale);
    }
    
    
    /**
     * 精确减法
     * @param [type] $a [description]
     * @param [type] $b [description]
     */
    function math_sub($a,$b,$scale = '2') {
    	return bcsub($a,$b,$scale);
    }
    
    /**
     * 精确乘法
     * @param [type] $a [description]
     * @param [type] $b [description]
     */
    function math_mul($a,$b,$scale = '2') {
    	return bcmul($a,$b,$scale);
    }
    
    /**
     * 精确除法
     * @param [type] $a [description]
     * @param [type] $b [description]
     */
    function math_div($a,$b,$scale = '2') {
    	return bcdiv($a,$b,$scale);
    }
    
    /**
     * 精确求余/取模
     * @param [type] $a [description]
     * @param [type] $b [description]
     */
    function math_mod($a,$b) {
    	return bcmod($a,$b);
    }
    
    /**
     * 比较大小
     * @param [type] $a [description]
     * @param [type] $b [description]
     * 大于 返回 1 等于返回 0 小于返回 -1
     */
    function math_comp($a,$b,$scale = '5') {
    	return bccomp($a,$b,$scale); // 比较到小数点位数
    }
    
    
    echo math_add('3.445','3.444')."\n"; // 加 6.88
    echo math_sub('3.445','3.444')."\n"; // 减 0.00
    echo math_mul('3.445','3.444')."\n"; // 乘 11.86
    echo math_div('3.445','3.444')."\n"; // 除 1.00
    echo math_mod('3.445','3.444')."\n"; // 取模 0
    echo math_comp('3.445','3.444')."\n";// 比较 1
    
    echo math_add('3.445','3.444','3')."\n"; // 加 6.889
    echo math_sub('3.445','3.444','3')."\n"; // 减 0.001
    echo math_mul('3.445','3.444','3')."\n"; // 乘 11.864
    echo math_div('3.445','3.444','3')."\n"; // 除 1.000
    echo math_mod('3.445','3.444')."\n"; // 取模 0
    echo math_comp('3.445','3.444')."\n";// 比较 1
    ?>
    
    展开全文
  • php的精度计算问题(bcadd和bcsub

    千次阅读 2018-08-31 14:03:06
    =bcsub( $m , $n , $scale ); break ; case 'mul' : $t =bcmul( $m , $n ); break ; case 'div' : if ( $n != 0 ){ $t =bcdiv( $m , $n ); } else { return $errors [ 0 ]; } break ; ...

    一、前言

          我们在进行php开发的时候经常会遇到浮点型的问题,特别是涉及金额的部分,常常需要进行加减运算。当小数点的位数比较多的时候,往往容易犯一些很低级的错误。这里记录一下php的精度计算和封装的小demo

    二、关于php的高精度问题

    1、概念解释

    这篇文章的解释最清楚:

    php高精度计算问题

    2、高精度数值对比大小问题

    下面这篇文章讲的很好:

    临时发一个项目遇到的PHP浮点计算问题

    三、封装的小demo

    //$m和$n代表传入的两个数值,主要就是这两个数值之间的比较
    //$x代表传入的方法,比如是;add,sub等
    //$scale  代表传入的小数点位数。这个根据需求更改即可
    public function calc($m,$n,$x,$scale){
        $errors=array(
          '被除数不能为零',
          '负数没有平方根'
        );
        switch($x){
          case 'add':
            $t=bcadd($m,$n,$scale);
            break;
          case 'sub':
            $t=bcsub($m,$n,$scale);
            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;
        }
          return $t;
      }

    调用方式:

     $result= $this->calc(2.001,3.002,'sub',3);

    end

    展开全文
  • php7(PHP 7.3.2)的代码如下所示: res: php5(PHP 5.4.39)的代码如下所示: public function test() { $amount = 2328.89; $moremoneyRes['money'] = 0.56;... $surplusAmount = bcsub(...
  • $subs = bcsub($amount,$moremonyRes['money'],2); var_dump($subs); //res string(7) "2328.33" 对 */ //echo phpinfo(); //PHP Version 7.1.13 /*$moremoneyRes['money'] = 2328.29; $amount = 2328.89; var...
  • <?php /** * 精确加法 * @param [type] $a [description] * @param [type] $b [description] */ function math_add($a,$b,$scale = '2') { return bcadd($a,$b,$scale); } /** ...funct.
  • bcscale() 来设置全局默认的小数位数 ... int $scale ] ) : string bcsub — 2个任意精度数字的减法 bcsub ( string $left_operand , string $right_operand [, int $scale = int ] ) : string
  • <?php /** * 精确加法 * @param [type] $a [description] * @param [type] $b [description] */ function math_add($a,$b,$scale = '2') { return bcadd($a,$b,$scale); } /** * 精确减法 ....
  • 易语言高精度算法模块源码,高精度算法模块,bccmp,bcadd,bcsub,bcmul,bcdiv,bcmod,ReadByte_文本型,ReadByte,WriteByte,Mov,Mov_Int,Mov_BigInt,Cmp,Cmp2,Add,Sub,Mul,Div,ret
  • PHP的bc数学函数计算精度的坑

    千次阅读 2018-05-03 12:00:38
    $a = bcsub(59.9,58); echo $a; 这段代码我们期望得到的值是1.9,但是实际多次运行结果有时候是1,有时候是1.9(大多数情况都是1),本人一脸懵逼。虽然不知道什么原因导致多次结果不同,但是很显然是计算精度问题...
  • PHP运算函数

    2021-01-23 10:55:07
    查看原文 加法 <?php $a = '1.234'; $b = '5'; echo bcadd($a, $b); // 6 echo bcadd($b, $a); // 6 echo bcadd($a, $b, 4); // 6.2340 ...echo bcsub($a, $b);...echo bcsub($a, $b, 4);...echo bcsub
  • php科学计数法转为字符串参与计算

    万次阅读 2020-04-27 14:37:00
    首先看这段代码, PHP 数字超过一定长度时,会... $open = 1.248E-5; // 0.00001248 $close = 1.228E-5; // 0.00001228 echo bcsub($close, $open, 10); // 0.00000000 echo $percent = bcdiv(bcsub($close, $open...
  • PHP精确计算功能示例

    2020-10-21 00:38:15
    主要介绍了PHP精确计算功能,结合实例形式分析了php进行针对加减乘除等数学运算的精确方法,涉及bcadd、bcsub、bcmul、bcdiv等函数的使用技巧,需要的朋友可以参考下
  • 主要介绍了PHP高精确度运算BC函数库,结合实例形式分析了BC函数库中bccomp、bcadd、bcsub、bcmod、bcdiv、bcmul等函数的功能以及高精度数学运算使用方法,需要的朋友可以参考下
  • php 数学函数集锦

    2019-04-28 19:17:04
    1. bcadd -添加两个任意精度数字 <?php $a = '1.234'; $b = '5'; echo bcadd($a, $b); // 6 echo bcadd($a, $b, 4); // 6.2340 ...2. bcsub—从另一个任意精度数字中减去一个。...echo bcsub($...
  • 2. bcsub 任意精度数的减法 3. bcmul 乘法, bcdiv除法 4. bcmod 取余数。 (比%功能更强大) 5. bcpow 幂函数运算 6. bcsqrt 平方根 7. sqrt 平方根运算 7. pow求幂 8. abs 求绝对值 9. pi 得到圆周率数值 三角...
  • 千万不能 $tatol = $a + $b + $d… 而是用PHP提供的高精度计算BC函数:bcadd 和bcsub即可,如下 tatol=bcadd(tatol = bcadd(tatol=bcadd(a, $b,2),保留2位小数点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 663
精华内容 265
热门标签
关键字:

bcsub