PHP-GMP和浮点数?

PHP-GMP和浮点数?,php,gmp,Php,Gmp,以下代码输出0,这是不正确的: $r = gmp_pow(gmp_init('-1.7976931348623157'), 308); echo gmp_strval($r); 我的印象是GMP库能够处理浮点数,还是我在代码中犯了错误 GMP库能够处理浮点数 不是。您可以通过以下方式进行测试: echo gmp_strval(gmp_init('18')); // 18 echo gmp_strval(gmp_init('1.8')); // 0 现在,您可以做的是使用: 这也是我发现的。

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

$r = gmp_pow(gmp_init('-1.7976931348623157'), 308);
echo gmp_strval($r);
我的印象是GMP库能够处理浮点数,还是我在代码中犯了错误

GMP库能够处理浮点数

不是。您可以通过以下方式进行测试:

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

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


这也是我发现的。我查看了图书馆的维基页面,但它没有这么说。()这很奇怪。@Matty看起来PHP只对任意长度的整数使用GMP:是的,你说得对。我也这么说。我忽略了这一点,因为PHP扩展应该是GMP库的包装器。我想这是一个不完整的。哇,我可以发誓我也用过GMP的花车这可能是PHP的gmp包装的限制,而不是实际的gmp限制。。我只是猜测
$num = bcpow('-1.7976931348623157', '308');
echo $num;
echo floatval($num); // for a "prettier" format