$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
那如何解决?
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn