日期:2014-05-16  浏览次数:20471 次

高手开过来!PHP的bcmath问题你懂吗?

$b=0.000000011;
$post=100000000;
$aa=strval($b);
$pos=strval($post);
echo bcmul($aa,$pos,10);
echo '<br/>';
$aa="0.000000011";
$pos="100000000";
echo bcmul($aa,$pos,10);

结果是:
0
1.100000000
为什么?强制转换跟直接赋值不一样?
------解决方案--------------------
$b=0.000000011;
$aa=strval($b);
var_dump($aa);

输出的结果是 string '1.1E-8' (length=6)
和 '0.000000011'是不一样的
------解决方案--------------------
科学计数法不是高精度计数法
所以 bcmath 不支持科学计数法
$b=0.000000011;
echo strval($b); //1.1E-8