Bug #77425 [Nab]: Operator error

From: Date: Mon, 07 Jan 2019 17:07:37 +0000
Subject: Bug #77425 [Nab]: Operator error
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-218836@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77425&edit=1 ID: 77425 Updated by: peehaa@php.net Reported by: karolyizoltan dot 1 at gmail dot com Summary: Operator error Status: Not a bug Type: Bug Package: Math related Operating System: Windows 8.1 PHP Version: 7.1.25 Block user comment: N Private report: N New Comment: To expend on the above please read the hard to miss big red warning on the Floating point numbers documentation page: http://php.net/manual/en/language.types.float.php Previous Comments: ------------------------------------------------------------------------ [2019-01-07 17:04:00] requinix@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://www.floating-point-gui.de/ Thank you for your interest in PHP. ------------------------------------------------------------------------ [2019-01-07 16:56:52] karolyizoltan dot 1 at gmail dot com Description: ------------ SYSTEM I test here by PHP 7.2.4 as well: http://sandbox.onlinephpfunctions.com/ and on my desktop 7.1.25 (this come from the php is downloaded and installed from here: https://www.apachefriends.org/download.html) PROBLEM The same values in case of some operators do not result the right outcomes. All of the six cases need to be true but first four return false values. Test script: --------------- $a = '0.9'; $b = '7.34'; $c = '100'; $d = floor(($a * $b)*100)/100; $e = $c + $b - $d;//this return 100.74 too $f = 100.74; // values of variables var_dump($e); var_dump($f); //first four return false values but all of them need to be true var_dump($e == $f);//false var_dump($e <= $f);//false var_dump($f >= $e);//false var_dump($e == $f);//false var_dump($e >= $f);//true var_dump($f <= $e);//true Expected result: ---------------- All the equations need to return true value for the same numbers. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=77425&edit=1

« previous php.bugs (#218836) next »