zoukankan      html  css  js  c++  java
  • 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')."
    "; // 加 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
    ?>
    
  • 相关阅读:
    RK3288 GMAC整理
    Linux电源管理-Linux regulator framework概述
    SRAM、DRAM、SDRAM、DDR、DDR2、DDR3
    内核错误值
    module_param和module_param_array用法
    VGA
    如何获取显示器的EDID信息
    进程间通信--共享内存
    Java 中的 CAS 简述及原理解析
    volatile 关键字特性解析及单例模式下的使用
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/5819087.html
Copyright © 2011-2022 走看看