Hello, it's sad, but the best explanation I could find is @ M$: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q42980
the section "Floating-Point Complications" Derick On Wed, 26 Jun 2002 [EMAIL PROTECTED] wrote: > You know what? I understand that's it's not a "PHP specific bug." > The test script I sent you does basic addition. No multiplication and > nothing past precision 2. > > Yes I know the "rule of thumb" but don't you think PHP should > "do the right thing" whenever possible? > > There's no reason I can find why the addition would fail. It's not > a repeating sequence. It doesn't have digits out past the second > field and doesn't do any multiplication/division/exponential work > which would affect "hidden" precision numbers. > > It's not a support question. I don't expect a reply. I already know > all the binary reasons for fp numbers and why not to compare them > as a rule. > > Thanks. > > -Mike > > > ----- Original Message ----- > From: "PHP Bug Database" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Tuesday, June 25, 2002 10:23 PM > Subject: Bug #17984 Updated: comparison of float values does not always work. > > > > ATTENTION! Do NOT reply to this email! > > To reply, use the web interface found at > > http://bugs.php.net/?id=17984&edit=2 > > > > > > ID: 17984 > > Updated by: [EMAIL PROTECTED] > > Reported By: [EMAIL PROTECTED] > > -Status: Open > > +Status: Bogus > > Bug Type: Unknown/Other Function > > Operating System: Linux Mandrake > > PHP Version: 4.2.1 > > New Comment: > > > > Sorry, but the bug system is not the appropriate forum for asking > > support questions. Your problem does not imply a bug in PHP itself. > > For a list of more appropriate places to ask for help using PHP, > > please visit http://www.php.net/support.php > > > > Thank you for your interest in PHP. > > > > http://www.php.net/manual/en/language.types.float.php > > > > > > Previous Comments: > > ------------------------------------------------------------------------ > > > > [2002-06-25 18:53:42] [EMAIL PROTECTED] > > > > Comparison of float values does not always work. > > > > ./configure --with-mysql=/usr/local/mysql --with-xml > > --with-apache=../../apache/apache_1.3.26/ > > > > Test code follows: > > > > <?php > > > > $a = 332.06; > > $b = 45.11 + 134.38 + 85.35 + 67.22; > > > > echo "output\n"; > > > > var_dump($a); > > var_dump($b); > > > > print("Total = $a\n"); > > print("Production = $b\n"); > > > > > > if($a != $b) > > { > > print("Totals do not Match!\n"); > > } > > else { > > print("Totals are in Balance\n"); > > } > > > > if($a !== $b) > > { > > print("Totals do not Match!\n"); > > } > > else { > > print("Totals are in Balance\n"); > > } > > > > if($a <> $b) > > { > > print("Totals do not Match!\n"); > > } > > else { > > print("Totals are in Balance\n"); > > } > > > > if($a > $b) > > { > > print("a is greater!\n"); > > } > > else { > > print("b is greater!\n"); > > } > > > > settype($a,"string"); > > settype($b,"string"); > > > > if ($a != $b) > > echo "String compare failed!\n\n"; > > > > > > settype($a,"float"); > > settype($b,"float"); > > > > if ($a != $b) > > echo "recast to float compare failed!\n\n"; > > > > echo "end output\n"; > > ?> > > > > ----------------------------- > > output > > float(332.06) > > float(332.06) > > Total = 332.06 > > Production = 332.06 > > Totals do not Match! > > Totals do not Match! > > Totals do not Match! > > b is greater! > > end output > > ------------------------------ > > > > Summary: > > float compare fails (!=) > > float compare fails (<>) > > float compare fails (!==) > > "b" is somehow greater than "a" > > cast to string, compare okay. > > recast to float, compare okay. > > > > -Mike > > > > ------------------------------------------------------------------------ > > > --------------------------------------------------------------------------- Derick Rethans http://www.derickrethans.nl/ JDI Media Solutions http://www.jdimedia.nl/ --------------------------------------------------------------------------- -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php