php高精度精准的加减乘除运算(适用金额)

参考:https://www.icode9.com/content-1-764656.html

  1. bcadd — 相加 例如:bcadd(3.1,5.04,2);//输出:8.14
  2. bcsub — 相减
  3. bcmul — 相乘
  4. bcdiv — 相除
  5. bcmod — 求余/取模
  6. bccomp — 比较两个高精度数字,返回-1, 0, 1
  7. bcpow — 求高精度数字乘方
  8. bcpowmod — 求高精度数字乘方求模,数论里非常常用
  9. bcscale — 配置默认小数点位数,相当于就是Linux bc中的"scale="

报Call to undefined function bcadd()错误是因为安装php的时候没有安装bcmath扩展。所以安装扩展就解决问题了。

一、ceil — 进一法取整【向上取整】

float ceil ( float value )

返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

例子: ceil()

  1. echo ceil(4.3); // 5
  2. echo ceil(9.999); // 10

二、floor — 舍去法取整【向下取整】

float floor ( float value )

返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

例子: floor()

  1. echo floor(4.3); // 4
  2. echo floor(9.999); // 9

三、round — 对浮点数进行【四舍五入】

float round ( float val [, int precision] )

返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

例子: round()

  1. echo round(3.4); // 3
  2. echo round(3.5); // 4
  3. echo round(3.6); // 4
  4. echo round(3.6, 0); // 4
  5. echo round(1.95583, 2); // 1.96
  6. echo round(1241757, -3); // 1242000
  7. echo round(5.045, 2); // 5.05
  8. echo round(5.055, 2); // 5.06

四、intval—对变数转成整数型态

例子:intval()

  1. echo intval(4.3); //4
  2. echo intval(4.6); // 4