On 15/05/2008, John Gunther <[EMAIL PROTECTED]> wrote:
> Iv Ray wrote:
>
> > John Gunther wrote:
> >  > What technique can I use to take an 8-byte double precision value, as
> >  > stored internally, and assign its value to a PHP float variable without
> >  > having the bytes misinterpreted as a character string.
> >
> > Does it get misinterpreted, or do you just want to be sure?
> >
> > The documentation says -
> >
> > "Some references to the type "double" may remain in the manual. Consider
> double the same as float; the two names exist only for historic reasons."
> >
> > Does this cover your case?
> >
> > Iv
> >
>  No.
>
>  Example: I extract the 8 bytes 40 58 FF 5C 28 F5 C2 8F from an external
> file, which is the internal double precision float representation of the
> decimal value 99.99. Starting with that byte string, how can I create a PHP
> variable whose value is 99.99?

Reversing the order of bytes then using unpack('d') works for me.

<?php
$bytes = pack('H*', '4058FF5C28F5C28F');

$output = unpack('d', strrev($bytes));
print array_shift($output) . "\n";
// 99.99
?>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to