Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Преобразовать 8 байт в double
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Преобразовать 8 байт в double

Страниц (1): [1]
 

1. MAXUS - 06 Июля, 2014 - 12:30:09 - перейти к сообщению
Доброе время суток.

Считываю файл через поток и разбираю его в соответствии с форматом файла. Все нормально, все получается, но в одном месте втупил и не могу допереть как сделать. Получаю значение длиной 8 байт, которое, согласно формату, является double. А как это полученное значение преобразовать в double-то?

Вот например:


А как это $double в число с плавающей точкой превратить?
2. caballero - 06 Июля, 2014 - 12:31:54 - перейти к сообщению
unpack()
3. MAXUS - 07 Июля, 2014 - 06:18:22 - перейти к сообщению
caballero пишет:
unpack()


Блин, продолжаю тупить... Вот есть hex представление:

406429c28f5c28f6

Получил я его так:



Оно должно быть равно 161.305 А как это получить? Я про unpack читал, пробовал, но откровенно не догоняю. Хотя бы ручками вычислить как? Оно, не оно? Может, порядок обратный?

Добавление
То, что число правильное убедился при помощи калькулятора http://www[dot]floatingpoint[dot]ru/onli[dot][dot][dot]e/double2dec.php . Соответственно, остался вопрос, как это сделать на php.


Вопрос закрыт

unpack('d',strrev(fread($file, 8)));

Строку нужно было перевернуть... Обратный порядок...

 

Powered by ExBB FM 1.0 RC1