对于高精度运算,需要用到php扩展bcmath,通常计算100万分之1乘以100万,会使用bcmul函数
var_dump(bcmul(0.000001, 1000000));
你会发现结果并不是1,而是0
解决方案:
需要用sprintf函数先把浮点型的1.000000转换为字符串,指定返回精度位数
var_dump(bcmul(sprintf('%.6f', 0.000001), 1000000,6));
对于高精度运算,需要用到php扩展bcmath,通常计算100万分之1乘以100万,会使用bcmul函数
var_dump(bcmul(0.000001, 1000000));
你会发现结果并不是1,而是0
解决方案:
需要用sprintf函数先把浮点型的1.000000转换为字符串,指定返回精度位数
var_dump(bcmul(sprintf('%.6f', 0.000001), 1000000,6));
本文标题:PHP的bcmul函数计算精度问题
本文链接:https://www.haomeiwen.com/subject/bovrnctx.html
网友评论