Bug #14382 Updated: Locales and float numbers
ID: 14382
User updated by: jiri.kaderavek@webstep.net
Reported By: jiri.kaderavek@webstep.net
Old Summary: sprintf function doesn't print correct results
Old Status: Closed
Status: Open
Bug Type: Variables related
Operating System: Debian GNU/Linux
Old PHP Version:
PHP Version: 4.1.0
New Comment:
Previous Comments:
------------------------------------------------------------------------
[2001-12-11 08:38:45] jiri.kaderavek@webstep.net
This is the problem of syntax checking and locale settings.
This script print a warning:
setlocale(LC_ALL, "en_US"); // US have a decimal pointer
$X = 1,22; // !!! bad syntax
This script doesn't print a warning:
setlocale(LC_ALL, "cs_CZ"); // CZ have a decimal comma
$X = 1.22; // !!! also bad syntax
The error caused by incorrect parsing of a float number is propagated into the next script lines and
cause a false alerts in a many situations. When the variable is parsed as a string
------------------------------------------------------------------------
[2001-12-07 13:47:35] jiri.kaderavek@webstep.net
Sometimes (1-10 times a day) appears a fatal bug
in my php code. Sometime this sprintf expression returns me string like '0.05-0%':
<?echo
$rs["pol_sazbadph"]."-".sprintf("%1.0f",$rs["pol_sazbadph"]
* 100)."%"?>
This bug appears to me on two different servers:
1) Athlon based 2.4.12-k6 kernel - Apache/1.3.22 - php 4.1.0 RC3
'./configure' '--prefix=/usr' '--with-apxs=/usr/bin/apxs'
'--with-config-file-path=/ etc/php4/apache'
'--with-ibm-db2=/home/db2inst1/sqllib'
2) Pentium II based - 2.2.19pre17 kernel - Apache/1.3.9 -
php 4.0.3pl1
'./configure' '--prefix=/usr' '--with-apxs=/usr/bin/apxs'
'--with-regex=system' '--with- config-file-path=/etc/php4/apache'
'--with-db2' '--with-zlib' '--without-pgsql' '--
disable-static' '--with-layout=GNU' '--with-zlib-dir=/usr'
'--with-mysql=shared,/usr' '-- with-ibm-db2=/home/db2inst1/sqllib'
The bug appears after we have compiled php against db2 libraries. I've found another bug in
sprintf with the same frequency of appearance in bugs database. There is something bad in sprintf in
some cases, but what?
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14382&edit=1
Thread (5 messages)