前言:
此刻兄弟们对“php小数点2位小数”大体比较注意,朋友们都需要了解一些“php小数点2位小数”的相关资讯。那么小编也在网络上收集了一些有关“php小数点2位小数””的相关知识,希望看官们能喜欢,你们快快来学习一下吧!在做php浮点数计算是遇到一个特殊的数字问题,如下式
(int)(0.29 * 100) = ?
上式期望值是29,但是通过php计算得到的结果却是28。
这是因为php的浮点数计算是不精确的,0.29 * 100 =28.9999999...再进行强制类型转换成int型时就得到了28。
那么如何解决这个问题呢?
PHP提供了bc系列数学函数,可以进行任意精度的计算。以上式为例:
注:bc数学函数的操作数参数为字符串类型
(int)bcmul("0.29", "100") = 29
bcadd 两个任意精度的数相加
bcsub 两个任意精度的数相减
bccomp 两个任意精度的数比较
echo bccomp('1', '2'); // -1echo bccomp('1.00001', '1', 3); // 0 第三个参数为比较的小数位数echo bccomp('1.00001', '1', 5); // 1
详细函数列表以及用法请参见php官方文档手册
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #php小数点2位小数