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
    ?>
  • 相关阅读:
    解决Cannot delete or update a parent row: a foreign key constraint fails的mysql报错
    zabbix4.2绘制网络拓扑图-添加链路速率
    zabbix 添加宏变量
    238_Product of Array Except Self
    122_Best Time to Buy and Sell Stock II
    260_Single Number III
    C# 比较时间问题
    226_Invert Binary Tree
    100_Same Tree
    283_Move Zeroes
  • 原文地址:https://www.cnblogs.com/ldms/p/8316343.html
Copyright © 2011-2022 走看看