I understand the issues about binary precision for floating point numbers on standard base 2 systems but I'm unsure of the propper way to fix this problem. Here is the base test case:
<? $contract_amount = 9961.00; $bill1 = .95; $bill2 = .05; $billable_this_month += ($contract_amount * $bill1); $paid_to_date += ($contract_amount * $bill2); echo "conditional: if(($paid_to_date + $billable_this_month) >= $contract_amount)\n<br>\n"; if(($paid_to_date + $billable_this_month) >= $contract_amount) { echo "true"; } else { echo "false"; } ?> This is mostly a cut and paste of a problem that I am trying to fix for a client for a particular record which is coming out of the database and not evaluating like I want it to. you would expect (498.05 + 9462.95) to be equal to 9961.00 . In the case of this problem, all variables in question are of type double at time of comparison. ideas? I tried casting to various different types without success. I'd prefer not to round if at all possible... Thanks! -- ------------------------- Marc Swanson MSwanson Consulting Phone: (603)868-1721 Fax: (603)868-1730 Mobile: (603)512-1267 [EMAIL PROTECTED] http://www.mswanson.com ------------------------- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]