[thelist] PHP type and value match, but value comparssion fails.

sbeam sbeam at syxyz.net
Wed Aug 25 08:51:08 CDT 2004


On Wednesday 25 August 2004 09:03 am, Liam Delahunty wrote:
> eg,
>   3 units X 0.5 = 1.5, works
>   3 units X 0.6 = 1.8, fails...
>
> So, what gives? How can I check these values, and what is causing the
> errors?
http://us2.php.net/manual/en/language.types.float.php
read the box about "Floating point precision" where it says "never 
compare floating point numbers for equality" 

This is all true of *any* computer language, its a limitation of trying 
to represent arbitrarily precise numbers with a finite number of 1's 
and 0's. 

for currencies, you need to do all the math with integers and just 
divide by 100 at display/storage time, I like "sprintf('%.2d', 
$total/100)" myself.

-- 

# S Beam - Web App Dev Servs
# http://www.onsetcorps.net/


More information about the thelist mailing list