Bug #14382 Updated: sprintf function doesn't print correct results

From: Date: Mon, 14 Jan 2002 07:08:55 +0000
Subject: Bug #14382 Updated: sprintf function doesn't print correct results
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-76970@lists.php.net to get a copy of this message
ID: 14382
Updated by: lobbin
Old Summary: sprintf function doesn't print correct results
Reported By: jiri.kaderavek@webstep.net
Old Status: Feedback
Status: Closed
Bug Type: Variables related
Operating System: Debian GNU/Linux
PHP Version: 4.1.0
New Comment:

No feedback, closing.


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

[2001-12-24 10:08:54] sander@php.net

Can you provide a _self-contained_ sample script which reproduces the
problem.

BTW: $X = 1.22; is not bad syntax. It's just the way you represent
decimal values in PHP, no matter what the current locale is.

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

[2001-12-11 08:41:41] jiri.kaderavek@webstep.net




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

[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)

« previous php.dev (#76970) next »