ID: 13550
Updated by: manuel
Reported By: [EMAIL PROTECTED]
Old Status: Bogus
Status: Open
Bug Type: *Programming Data Structures
Operating System: Linux 2.2.18
PHP Version: 4.0.6
New Comment:
The bug is real. Try it on the mentioned OS with glibc version mentioned in the report
to see it.
Previous Comments:
------------------------------------------------------------------------
[2001-10-05 08:30:42] [EMAIL PROTECTED]
Except that it doesn't, here and in many other users machines it prints:
int(2)
float(100)
string(4) "8.78"
float(8.78)
float(878)
int(877)
int(878)
glibc rpm version is 2.2-7.
------------------------------------------------------------------------
[2001-10-05 03:58:28] [EMAIL PROTECTED]
Could you be a little less cryptic please? I would expect this to print:
int 2
float 100
string '8.78'
float 8.78
float 878
int 878
int 878
Which is exactly what I am seeing. $scaled = 8.78 * 100.0 which gives a double value
of 878.00 therefore round(878.00) would be 878 and intval(878) is 878. What exactly
are you expecting to be different here?
------------------------------------------------------------------------
[2001-10-04 19:08:52] [EMAIL PROTECTED]
It seems that intval does not round off double numbers like the function that prints
those numbers. Try this script to see the problem.
<?
$decimal_places=2;
$decimal_factor=pow(10.0,$decimal_places);
$value='8.78';
$double=doubleval($value);
$scaled=$double*$decimal_factor;
$integer=intval($scaled);
$round=intval(round($scaled));
var_dump($decimal_places,$decimal_factor,$value,$double,$scaled,$integer,$round);
?>
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13550&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]