我有一个64位整数,我想将其解释为浮点。我可以用PHP或javascript进行这种解释,所以任何潜在的解决方案都可以选择自己的语言。
我并不是说我想重新分配4到4.0之类的内容。
我有以下8个字节的数据:
十二月(int):4619191942746344941
十二月(浮动):6.6666000000000000
十六进制:401AAA9930BE0DED
我有4619191942746344941存储在javascript/php代码中的一个变量中。如何将其转换为6.6666000000000000?
您可以使用pack
//$number = 4619191942746344941;
$pack = pack('H*', '401AAA9930BE0DED');
$pack = strrev($pack);
var_dump(unpack('d', $pack)); // 6.6666
演示
作为功能
function getFloatFromInteger($integer)
{
$hex = dechex($integer);
$pack = pack('H*', $hex);
$pack = strrev($pack);
$result = unpack('d', $pack);
return $result[1];
}
var_dump(getFloatFromInteger(4619191942746344941));
附言:js上存在pack函数的实现。