Re: [PATCH] double to long conversion change
| From: | Daniel Convissor | Date: | Tue, 07 Apr 2009 19:34:40 +0000 |
| Subject: | Re: [PATCH] double to long conversion change | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-43657@lists.php.net to get a copy of this message | ||
Hi Matt, and everyone:
On Mon, Apr 06, 2009 at 01:00:47PM -0500, Matt Wilmas wrote:
> unless I'm missing something,
> you're talking about converting long/int to double/float. That's the
> opposite of this thread subject, which is how to convert a double to a
> long when it's out of the range of a long. :-)
It's a two way street. If the floats don't have enough precision, things
get jumbled when converting the floats back to integers.
> But, for what you're testing, that's the behavior I'd expect -- once
> you've reached the precision of a double, you'll only get the closest
> representation possible (and of course a 64-bit long is more precise than
> a double since there's no floating point to represent). Also, I assume
> what can be represented by a double is the same across platforms, if it's
> IEEE 754.
Yes. But I was expecting that since long on 64-bit machines holds 64
bits in PHP (et al), that PHP would use C's long double type for floats
on 64-bit platforms rather than plain old doubles. It seems like the
user-friendly, PHP way to handle the situation, particularly as 64-bit
computers are commonplace these days.
> Just curious though, you're saying that all whole numbers (from long)
> below 2^53 are representable? (Powers of 2 should always be OK.) When
> writing a big literal number on a 32-bit system, I'm seeing much lower
> than that (around 2^40)
I'm talking about 64-bit machines.
> Like I said, I figure a double type should
> behave the same everywhere. Unless the shell/bash uses a *long* double
> type (twice as big as a regular double)? *shrug*
Exactly.
The test scripts in question are now available for download from
http://www.analysisandsolutions.com/php/intfloat/
Thanks,
--Dan
--
T H E A N A L Y S I S A N D S O L U T I O N S C O M P A N Y
data intensive web and database programming
http://www.AnalysisAndSolutions.com/
4015 7th Ave #4, Brooklyn NY 11232 v: 718-854-0335 f: 718-854-0409