3v4l.org

run code in 300+ PHP versions simultaneously
<?php function strtod($hex) { preg_match('#([\da-f]+)\.?([\da-f]*)p#i', $hex, $parts); $i = 0; $fractional_part = array_reduce(str_split($parts[2]), function($sum, $part) use (&$i) { $sum += hexdec($part) * pow(16, --$i); return $sum; }); $decimal = (hexdec($parts[1]) + $fractional_part) * pow(2, array_pop(explode('+', $hex))); return $decimal; } $data = '406429c28f5c28f6'; $num = strtod($data); var_dump($num);

preferences:
40.28 ms | 402 KiB | 5 Q