zoukankan      html  css  js  c++  java
  • php的精确计算

     

    引言:一定要确保数据的准确性。这是一个好的程序员的基本素养。

    <?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')."
    "; // 加 6.88
    echo math_sub('3.445','3.444')."
    "; // 减 0.00
    echo math_mul('3.445','3.444')."
    "; // 乘 11.86
    echo math_div('3.445','3.444')."
    "; // 除 1.00
    echo math_mod('3.445','3.444')."
    "; // 取模 0
    echo math_comp('3.445','3.444')."
    ";// 比较 1
    
    echo math_add('3.445','3.444','3')."
    "; // 加 6.889
    echo math_sub('3.445','3.444','3')."
    "; // 减 0.001
    echo math_mul('3.445','3.444','3')."
    "; // 乘 11.864
    echo math_div('3.445','3.444','3')."
    "; // 除 1.000
    echo math_mod('3.445','3.444')."
    "; // 取模 0
    echo math_comp('3.445','3.444')."
    ";// 比较 1
    ?>
  • 相关阅读:
    Java基础--阻塞队列ArrayBlockingQueue
    Java基础--反射Reflection
    Java基础--对象克隆
    Java基础--HashCode
    Java基础--序列化Serializable
    OpenCV 绘制图像直方图
    PHP isset, array_key_exists配合使用, 并解决效率问题
    安装XDEBUG步骤及问题
    设计模式例子
    适配器模式例子
  • 原文地址:https://www.cnblogs.com/ldms/p/8316343.html
Copyright © 2011-2022 走看看