• php 关于金额的几种计算方式


    php 关于金额的几种计算方式

           平常开始开发过程中,多多少少都会遇到点关于金额的计算,比如设置返利、提现手续费、折扣啊等等诸如此类的比例,然后再计算出之后的实际的费用。

    下面,以折扣为例,来实现这类计算是如何实现的,话不多说,直接上代码!

     1 //计算折扣
     2 $value = '9.95';//折扣
     3 $money = '39.555';//原始价格,当然到这一步的价格,一般都是小数点后两位的,此处保留三位,主要是为了对比
     4 echo '原始价格:'. $money * ($value/10);
     5 echo '<pre>';
     6 echo '直接四舍五入:'.round($money * ($value / 10),2);
     7 echo '<pre>';
     8 echo '截取小数点后1位:'.floor($money * $value)/10;
     9 echo '<pre>';
    10 echo '截取小数点后2位'.floor($money * ($value / 10) * 100)/100;
    11 die;

     运行结果为:

    1 价格:39.357225
    2 直接四舍五入:39.36
    3 截取小数点后1位:39.3
    4 截取小数点后2位39.35

    我一般是使用第二种和第四种,当然也可以根据自身需要,适当调整

     

    最后是函数说明:

    round():对浮点数进行四舍五入。语法:round(a,b), 默认b为0

    floor():  向下舍入为最接近的整数。即小于这个浮点数的最大整数

     补充:在php运算过程中,精度运算是不可缺少的,所以是使用floor函数向下取整的时候,往往会出现bug,比如floor(0.58*10)为57,

    此时可以借助php的高精度函数来解决,floor(bcmul(0.58,10))为58,,此外还有bccomp、bcadd、bcsub、bcmod、bcp、bcmul,分别代表比较、加、减、取模、除、乘法运算,具体可参考另一篇文章php 高精度计算函数

    多学、 多记、 多练、
  • 相关阅读:
    Java 函数式编程—@FunctionalInterface----functional interface
    人月神话的博客
    如何度量复杂度
    泛型沉思录:创建模版与使用模版生成代码
    ioc与bean管理
    模式(思维)匹配是什么
    简析散光的成因,以及什么是散光的度数和轴位?
    概括是什么?
    思维与模型、世界观
    抽象、维度、层次与分析、综合
  • 原文地址:https://www.cnblogs.com/cyfblogs/p/9641368.html
Copyright © 2020-2023  润新知