#46724 [Bgs]: Floating number is not equal!

From: Date: Tue, 09 Dec 2008 01:07:02 +0000
Subject: #46724 [Bgs]: Floating number is not equal!
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-131784@lists.php.net to get a copy of this message
ID: 46724 User updated by: yanan at joit dot com Reported By: yanan at joit dot com Status: Bogus Bug Type: Unknown/Other Function Operating System: WindowsXP PHP Version: 5.2.6 New Comment: Thank u. I need to think about a new method to solve my problem... Previous Comments: ------------------------------------------------------------------------ [2008-12-01 10:15:44] pajoye@php.net Floating point values have a limited precision. Hence a value might not have the same string representation after any processing. That also includes writing a floating point value in your script and directly printing it without any mathematical operations. If you would like to know more about "floats" and what IEEE 754 is, read this: http://docs.sun.com/source/806-3568/ncg_goldberg.html Thank you for your interest in PHP. ------------------------------------------------------------------------ [2008-12-01 10:06:27] yanan at joit dot com Description: ------------ <?php $price = 10.05; $f_price = $price * 100; $int_price = floor($f_price); var_dump($f_price==$int_price); ?> The codes below should print bool(true) .But in fact, it prints bool(false) . The same results appear when $price=10.03 or 10.04. However, when $price=10.06, it prints bool(true) . Reproduce code: --------------- <?php $price = 10.05; $f_price = $price * 100; $int_price = floor($f_price); var_dump($f_price==$int_price); ?> Expected result: ---------------- bool(true) Actual result: -------------- bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46724&edit=1

« previous php.bugs (#131784) next »