PHP的bcmul函数计算精度问题

对于高精度运算,需要用到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函数计算精度问题)