Re: A really wacky design decision
| From: | clancy_1 at cybec dot com dot au | Date: | Tue, 06 Oct 2009 02:18:58 +0000 |
| Subject: | Re: A really wacky design decision | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-298625@lists.php.net to get a copy of this message | ||
On Sun, 4 Oct 2009 14:52:36 +0200, an_red@hotmail.com (Andrea Giammarchi) wrote:
>
>
>
>> $a = 2260; $b = 226e1; $c = 2.26e3; $d = 2260.0;
>>
>> $a==$b==$c==$d,
>>
>> and
>> $b===$c===$d
>
>$b , $c, and $d are the same indeed ... they represent the floating point 2260.0 in I think
>every language ... it's like saying that 1.0 is not 1.0000 ... both floating point numbers, so
>I don't get your problem ...
IF they are actually floating point numbers. My problem is that I'm working with values
which are strings, but which sometimes look like either integers or floating point
numbers. And I apologise for falsely contradicting your previous message; I realised
subsequently that I had forgotten to specify the variables as strings in my test. Thus, if
I write:
$a = 2260; $b = '2260'; the exact comparison returns 'false'.
The same applies to all the cases I had been complaining about, and the exact comparison
does indeed work as you stated. This piece of carelessness arose because my data is
represented in the simple form, eg:
A;e;21TH;AP;;;;Musical education;090701
but is implicitly converted into strings when it is entered.
(And I tend to be wary of determining the rules experimentally. I learned my programming
on CDC3200 Fortran fortysomething years ago. Manuals were brief and textbooks
non-existent, so whenever we were not sure of something we would try it. Unfortunately the
Fortran had some very strange design features, which we learnt about when our employer
upgraded to a CDC 6600. This used a much more standard Fortran, and many of the tricks we
had discovered no longer worked.)