ID:               45983
 User updated by:  ivoras at gmail dot com
-Summary:          strval() on float values sometimes gives invalid
                   output
 Reported By:      ivoras at gmail dot com
 Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: FreeBSD
 PHP Version:      5.2.6
 New Comment:

Addition to the bug report: I tracked the issue down to the "precision"
setting in php.ini. When set to "4", when strval() receives a number
with 4 digits to the left of the decimal point, the output will only be
a string og 4 digits. E.g. strval(1001.1) returns "1001". The
documentation for "precision" setting says:

"""
  precision  integer
    The number of significant digits displayed in floating point
numbers. 
"""

It doesn't mention strval() (and strval() manual page doesn't mention
"precision") and it's a bit ambiguous.

(the behaviour is the same on Linux and FreeBSD).


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

[2008-09-03 13:32:03] ivoras at gmail dot com

Description:
------------
Calling strval() on certain floating point numbers (not all) on FreeBSD
sometimes inexplicably truncates or rounds the result. Checked on both
FreeBSD 6.3 and 7.0. Works fine in Linux.

Reproduce code:
---------------
<?php
$v = 4867.8;
echo strval($v);
?>


Expected result:
----------------
"4867.8"

Actual result:
--------------
"4867"


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


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

Reply via email to