我有一个64位整数,我想将其解释为float。我可以在PHP或javascript中进行这种解释,因此任何可能的解决方案都可以选择他们选择的语言。
我并不是说我想重新分配4到4.0之类的东西。
我有8个字节的数据:
Dec(int):4619191942746344941
Dec(浮动):6.6666000000000000
Hex:401AAA9930BE0DED
我的4619191942746344941存储在我的javascript / php代码中的变量中。如何将其转换为6.6666000000000000?
答案 0 :(得分:2)
您可以使用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));
P.S。存在pack function on js的实现。