ID:               24142
 Comment by:       webmaster at ragnarokonline dot de
 Reported By:      infohata at firmos dot net
 Status:           Bogus
 Bug Type:         Zend Engine 2 problem
 Operating System: Linux
 PHP Version:      5.0.0-dev
 Assigned To:      stas
 New Comment:

uhm, anyone?


Previous Comments:
------------------------------------------------------------------------

[2003-07-16 04:00:23] webmaster at ragnarokonline dot de

The test-case hasn't been corrected for PHP 4.3.3-dev

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

[2003-06-16 14:16:12] [EMAIL PROTECTED]

Should always test myself and not trust others:

# /usr/src/web/php/php5/sapi/cli/php -n t.php 
5.04499999999999992894573
5.04999999999999982236432
5.04999999999999982236432
5.05

No bug anywhere.


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

[2003-06-16 14:00:55] [EMAIL PROTECTED]

With this script:

<?php

$mul = 1;
$one = 5;
$two = 0.9;

ini_set("precision", 24);

$res = 5 * (1 + (0.9 / 100));
$bar = round($res, 2);
$foo = round(1 * $bar, 2);

echo $res, "\n", $bar, "\n", $foo, "\n";

echo sprintf("%1.2f", $foo);

?>

Result with PHP 4.3.3-dev:
5.04499999999999992894573
5.04999999999999982236432
5.04999999999999982236432
5.05

Result with PHP 4.2.3:
5.04499999999999992894573
5.04000000000000003552714
5.04000000000000003552714
5.04

Nokia 6120 (the $res):
5.045

TI-32:
5.045

With pen and paper:
5.045

Round 5.045 with precision of 2 == 5.05

So I think PHP 4.3.2 actually works as expected 
and anything before (and after, PHP 5? :) doesn't.

Reclassified as ZE2 bug.



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

[2003-06-16 12:10:33] [EMAIL PROTECTED]

Stas, I was so free to assign this to you :)

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

[2003-06-16 12:09:50] [EMAIL PROTECTED]

hmm, actually this changed between PHP 4.2.2, PHP 4.2.3 an PHP 4.3.0:

[EMAIL PROTECTED] derick]$ cat foo.php   
<?php
$mul = 1;
$one = 5;
$two = 0.9;

echo sprintf("%1.2f", round($mul * round($one * (1 + ($two / 100)), 2),
2));
?>

[EMAIL PROTECTED] derick]$ php-4.2.2 foo.php 
5.04

[EMAIL PROTECTED] derick]$ php-4.2.3 foo.php 
5.05zend_hash.c(98) : Bailed out without a bailout address!

[EMAIL PROTECTED] derick]$ php-4.3.0 foo.php 
5.05

[EMAIL PROTECTED] derick]$ php-4.3.0dev foo.php 
5.05

[EMAIL PROTECTED] derick]$ php-5.0.0dev foo.php 
5.04

So something is definitely screwed in the PHP_4_3 branch

Derick

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

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
    http://bugs.php.net/24142

-- 
Edit this bug report at http://bugs.php.net/?id=24142&edit=1

Reply via email to