PHP - GMP和浮点数?

时间:2011-08-05 02:15:32

标签: php gmp

以下代码输出0,这是不正确的:

$r = gmp_pow(gmp_init('-1.7976931348623157'), 308);
echo gmp_strval($r);

我的印象是GMP库能够处理浮点数,或者我在代码中犯了错误?

1 个答案:

答案 0 :(得分:10)

  

GMP库能够处理浮点数,

不是。你可以用以下方法测试:

echo gmp_strval(gmp_init('18')); // 18
echo gmp_strval(gmp_init('1.8')); // 0

现在,您可以做的是使用BCMath代替:

$num = bcpow('-1.7976931348623157', '308');
echo $num;
echo floatval($num); // for a "prettier" format