[PHP] Working with internal data formats

2008-05-15 Thread John Gunther
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.


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



Re: [PHP] Working with internal data formats

2008-05-15 Thread Iv Ray

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

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



Re: [PHP] Working with internal data formats

2008-05-15 Thread John Gunther

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?


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



Re: [PHP] Working with internal data formats

2008-05-15 Thread Robert Cummings

On Thu, 2008-05-15 at 10:33 -0400, John Gunther 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?

http://www.php.net/manual/en/function.unpack.php

Cheers,
Rob.
-- 
http://www.interjinn.com
Application and Templating Framework for PHP


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



Re: [PHP] Working with internal data formats

2008-05-15 Thread Iv Ray

John Gunther wrote:
 Example: I extract the 8 bytes 40 58 FF 5C 28 F5 C2 8F from
 an external file

You mean you extract 40 58 FF 5C 28 F5 C2 8F, so to speak, as a 
string, right?


Sorry, for asking, but somehow I do not the case.

--

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



Re: [PHP] Working with internal data formats

2008-05-15 Thread Robin Vickery
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