Bug #79443 [Com]: round with precision is not rounding
| From: | bugreports at gmail dot com | Date: | Wed, 01 Apr 2020 16:51:23 +0000 |
| Subject: | Bug #79443 [Com]: round with precision is not rounding | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-226398@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79443&edit=1
ID: 79443
Comment by: bugreports at gmail dot com
Reported by: info at globules dot io
Summary: round with precision is not rounding
Status: Not a bug
Type: Bug
Package: *General Issues
Operating System: Windows 10 x64
PHP Version: 7.4.4
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
> I am on Windows 10 Pro x64 and ran this from command prompt
yeah, but you didn't mangle the "precision" config (look at the subejct)
garbage in, garbage out and so we are at: 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
php -n -d precision=100 -r "echo round(-80.0035326999999938, 6);"
-80.00353300000000444924808107316493988037109375
Previous Comments:
------------------------------------------------------------------------
[2020-04-01 16:40:27] tiffany@php.net
I am on Windows 10 Pro x64 and ran this from command prompt.
C:\Users\Tylae>php -r "echo round(-80.0035326999999938, 6);"
-80.003533
------------------------------------------------------------------------
[2020-04-01 16:10:18] info at globules dot io
How is this not a bug?
This is the exact code. I'm rounding with precision, it works on Linux, doesn't work on
Windows.
------------------------------------------------------------------------
[2020-04-01 16:06:34] info at globules dot io
Yes I have posted the exact code.
------------------------------------------------------------------------
[2020-04-01 15:48:07] danack@php.net
Mr Info
Are you sure that code you posted is actually the code that's producing that output?
https://3v4l.org/v9k54
------------------------------------------------------------------------
[2020-04-01 15:44:09] cmb@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.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=79443
--
Edit this bug report at https://bugs.php.net/bug.php?id=79443&edit=1