以下代码输出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
现在,你可以使用 BCMath 替代:
$num = bcpow('-1.7976931348623157', '308');
echo $num;
echo floatval($num); // for a "prettier" format