Библиотека 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