PHP高精度函数

平时在做开发的时候,会遇到计算结果出错的问题,明明计算的方法正确,但结果不对。

比如0.58*100,得到的是57.99999999999999,而不是58

出现这种情况,并不是PHP的bug,而是二进制浮点计算的问题,各种语言都存在这个问题。

具体原理自行搜索,这里就不细讲,下面列出PHP这边的解决方案,使用高精度函数

        bcadd — 将两个高精度数字相加

  bccomp — 比较两个高精度数字,返回-1, 0, 1

  bcdiv — 将两个高精度数字相除

  bcmod — 求高精度数字余数

  bcmul — 将两个高精度数字相乘

  bcpow — 求高精度数字乘方

  bcpowmod — 求高精度数字乘方求模,数论里非常常用

  bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=”

  bcsqrt — 求高精度数字平方根

  bcsub — 将两个高精度数字相减

你可能感兴趣的:(PHP高精度函数)