From:             easteregg at verfriemelt dot org
Operating system: Linux and Windows
PHP version:      5.4.14
Package:          Math related
Bug Type:         Bug
Bug description:failing to add 0.001 multiple times

Description:
------------
Hi,

first some informations: vanilla php 5.4.14 without any changes from your 
website, and a php 5.4.13 on a linux host.

C:\Users\Administrator>php -v
PHP 5.4.12 (cli) (built: Feb 19 2013 21:26:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

root@verfriemelt:~# php -v
PHP 5.4.13-1~dotdeb.1 (cli) (built: Mar 21 2013 08:29:56)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies


------------


i have a number like 8 and add 0.001 while this number reaches 11. i
suspected 
the numbers in between should look like 8.999 and 10.743 but instead i got
some 
like this:

8.9899999999999

and i noticed a gap between some numbers.

eg:

8.09 + 0.001 equals 8.090999999999

i suspected a problem with my linux box and tested it with my windows 
workstation, same result. so i guess its a php internal error.

this doest not occur, when i simple add 0.001 to 8.09 so i guess it has 
something to do with the for()

Test script:
---------------
<?php
    for ($i = 8; $i< 11; $i += 0.001) {
        echo $i . "\n";
    }

Expected result:
----------------
[...]

8.08
8.081
8.082
8.083
8.084
8.085
8.086
8.087
8.088
8.089
8.09
8.091
8.092
8.093
8.094
8.095
8.096
8.097
8.098
8.099
8.1

[...]

Actual result:
--------------
8.08
8.081
8.082
8.083
8.084
8.085
8.086
[...]

8.087
8.088
8.089
8.09
8.0909999999999
8.0919999999999
8.0929999999999
8.0939999999999
8.0949999999999
8.0959999999999
8.0969999999999
8.0979999999999
8.0989999999999
8.0999999999999
8.1009999999999

[...]

-- 
Edit bug report at https://bugs.php.net/bug.php?id=64682&edit=1
-- 
Try a snapshot (PHP 5.4):   
https://bugs.php.net/fix.php?id=64682&r=trysnapshot54
Try a snapshot (PHP 5.3):   
https://bugs.php.net/fix.php?id=64682&r=trysnapshot53
Try a snapshot (trunk):     
https://bugs.php.net/fix.php?id=64682&r=trysnapshottrunk
Fixed in SVN:               https://bugs.php.net/fix.php?id=64682&r=fixed
Fixed in release:           https://bugs.php.net/fix.php?id=64682&r=alreadyfixed
Need backtrace:             https://bugs.php.net/fix.php?id=64682&r=needtrace
Need Reproduce Script:      https://bugs.php.net/fix.php?id=64682&r=needscript
Try newer version:          https://bugs.php.net/fix.php?id=64682&r=oldversion
Not developer issue:        https://bugs.php.net/fix.php?id=64682&r=support
Expected behavior:          https://bugs.php.net/fix.php?id=64682&r=notwrong
Not enough info:            
https://bugs.php.net/fix.php?id=64682&r=notenoughinfo
Submitted twice:            
https://bugs.php.net/fix.php?id=64682&r=submittedtwice
register_globals:           https://bugs.php.net/fix.php?id=64682&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=64682&r=php4
Daylight Savings:           https://bugs.php.net/fix.php?id=64682&r=dst
IIS Stability:              https://bugs.php.net/fix.php?id=64682&r=isapi
Install GNU Sed:            https://bugs.php.net/fix.php?id=64682&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=64682&r=float
No Zend Extensions:         https://bugs.php.net/fix.php?id=64682&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=64682&r=mysqlcfg

Reply via email to