Похоже, что функция pack - не лучший выбор для создания стандартных двоичных представлений с плавающей запятой, поскольку вы не можете ни указать порядковый номер, ни получить какую-либо гарантию того, какое представление используется.
Это может привести к незначительным или менее скрытым ошибкам на менее распространенных компьютерах или конфигурациях (или даже на общих? Я предполагаю, что php также использует IEEE 754, но afaik это не указано!), Но наиболее вероятная проблема заключается в том, что java предполагает большие порядковый номер и данные, которые вы получаете, закодированы в порядке байтов.
Вы можете сделать преобразование самостоятельно (не так уж сложно, в основном тривиальная обертка) или использовать классы nio (например, ByteBuffer), где вы можете указать метеоролог.
Не знаю, есть ли у php какая-то функция с большей гарантией (я уверен, что что-то есть), но если вы живете с некоторыми более крупными пакетами и теряете, возможно, некоторую точность, вы можете передавать строки - это позволяет избежать этих проблем.