zoukankan      html  css  js  c++  java
  • PHP常见数学函数及BC高精度数学函数用法示例

    本文实例讲述了PHP常见数学函数及BC高精度数学函数用法。分享给大家供大家参考,具体如下:

    1. bcadd 任意精度数的相加
    2. bcsub 任意精度数的减法
    3. bcmul 乘法, bcdiv除法
    4. bcmod 取余数。 (比%功能更强大)
    5. bcpow 幂函数运算
    6. bcsqrt 平方根
    7. sqrt 平方根运算
    8. pow求幂
    9. abs 求绝对值
    10. pi 得到圆周率数值
    三角函数

    sin cos tan asin acos atan(用弧度表达)
    deg2rad 角度转换成弧度
    rad2deg 弧度转换成角度

    指数

    log 求自然对数, log10 求10位底的对数
    exp 以e为底的幂

    各种数制转换

    base_convert 通用的任意数制转换
    bindec 二进制转换成十进制
    decbin 十进制转换成二进制
    dechex 十进制转换成十六进制
    decoct 十进制转换成八进制
    hexdec 十六进制转换成十进制
    octdec 八进制转换成十进制

    原文作者: xingguang
    原文链接: https://www.tiance.club/post/968766046.html
    版权声明: 转载请注明出处(必须保留作者署名及链接)

    BC高精确度函数用法示例:

    
    <?php
     /***************************************************************************************
     *php BC高精确度函数库
     *php bc math 包含了:相加,比较,相除,相减,求余,相乘,n次方,配置默认小数点数目,求平方
     *这些函数在涉及到有关金钱的计算时比较有用
     ***************************************************************************************
     *两个高精度数比较
     *工作中遇到一种情况,0.00 != 0
     *int bccomp ( string $left_operand , string $right_operand [, int $scale ] )
     *$left=$right 返回 0
     *$left<$right 返回 -1
     *$left>$right 返回 1
     *$scale 小数点位数
     ***************************************************************************************/
    $a = 4.45;
    $b = 5.54;
    if(bccomp($a, $b, 2) == 0)
    {
     echo "完全相等";
    }
    /***************************************************************************************
     *两个高精度数相加
     *string bcadd ( string $left_operand , string $right_operand [, int $scale ] )
     *$scale 返回的小数点个数
     ***************************************************************************************/
    $a = 1.0321456;
    $b = 0.0123456;
    $c = bcadd($a, $b, 2);
    var_dump($c);
    /***************************************************************************************
     *两个高精度数相减
     *sstring bcsub ( string $left_operand , string $right_operand [, int $scale ] )
     *$scale 返回的小数点个数
     ***************************************************************************************/
    $a = 1.0321456;
    $b = 3.0123456;
    $c = bcsub($a, $b, 2);
    var_dump($c);
    /********************************************************
     *两个高精度数求余/取模
     *string bcmod ( string $left_operand , string $modulus )
     *******************************************************/
    $a = 6;
    $b = 4;
    $c = bcmod($a, $b);
    var_dump($c);
    /***************************************************************************************
     *两个高精度数相除
     *string bcdiv ( string $left_operand , string $right_operand [, int $scale ] )
     *$scale小数点位数默认为 0
     ***************************************************************************************/
     $a = 6;
     $b = 5;
     $c = bcdiv($a, $b, 3);
     var_dump($c);
    /***************************************************************************************
     *两个高精度数相乘
     *string bcmul ( string $left_operand , string $right_operand [, int $scale ] )
     *$scale小数点位数默认为 0
     ***************************************************************************************/
    $a = 3.1415926;
    $b = 2.4569874566;
    $c = bcmul($a, $b, 6);
    var_dump($c);
    /***************************************************************************************
     *两个高精度数的次方值
     *string bcpow ( string $left_operand , string $right_operand [, int $scale ] )
     *$scale小数点位数默认为 0
     ***************************************************************************************/
    $a = 3.1415926;
    $b = 2;
    $c = bcpow($a, $b, 3);
    var_dump($c);
    /**************************************************
     *求高精度数的平方根
     *string bcsqrt ( string $operand [, int $scale ] )
     *$scale小数点位数默认为 0
     ***************************************************/
    $b = bcsqrt($a, 6);
    var_dump($b);
    /******************************
     *设置bc函数的小数点位数
     *bool bcscale ( int $scale )
     *$scale小数点位数默认为 0
     ******************************/
    bcscale(2);
    ?>
    

    运行结果:

    string(4) "1.04"
    string(5) "-1.98"
    string(1) "2"
    string(5) "1.200"
    string(8) "7.718853"
    string(5) "9.869"
    string(8) "1.772453"
    

    原文作者: xingguang
    原文链接: https://www.tiance.club/post/968766046.html
    版权声明: 转载请注明出处(必须保留作者署名及链接)

  • 相关阅读:
    Java关键字——instanceof
    C#基础知识整理 IList接口——非泛型
    .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
    JS 判断是否为null
    java数组与字符串相互转换、整型与字符串相互转换
    数组元素的反转
    IOS系统中点击失效
    vue中计算属性和方法的区别,演示代码
    VUE中使用的插件有哪些?为什么,不能自动补全,script,methods和export default?
    【VueJS】实例中data属性的三种写法及区别
  • 原文地址:https://www.cnblogs.com/yizhidaozuihou/p/12498275.html
Copyright © 2011-2022 走看看