Bug #55160 [Nab->Opn]: Unexpected result on bccomp when using any decimal comma locale
Edit report at https://bugs.php.net/bug.php?id=55160&edit=1
ID: 55160
Updated by: nikic@php.net
Reported by: everton at faccat dot br
Summary: Unexpected result on bccomp when using any decimal
comma locale
-Status: Not a bug
+Status: Open
Type: Bug
Package: BC math related
Operating System: Ubuntu 10.04 LTS 64bits
PHP Version: trunk-SVN-2011-07-08 (snap)
Block user comment: N
Private report: N
New Comment:
@mike PHP's shitty float to string cast shouldn't impede the workings of bcmath.
We've had this problem in the past several times (with stuff like JSON etc) and the solution is
to use some custom printf modifier for this.
Previous Comments:
------------------------------------------------------------------------
[2013-10-02 09:29:09] mike@php.net
This is actually expected behaviour because bcmath operates on strings and PHP casts numbers to
strings according to locale.
------------------------------------------------------------------------
[2011-07-08 08:36:47] everton at faccat dot br
added OS additional information
------------------------------------------------------------------------
[2011-07-08 08:27:56] everton at faccat dot br
Description:
------------
Unexpected result on bccomp when using any decimal comma locale.
If an operand is a fraction, and the other is zero, the result seems to be wrong.
Test script:
---------------
<?php
print setlocale(LC_ALL, "C")."\n";
print 1.1."\n";
print bccomp(1.1, 0)."\n";
//changing locale to a country which uses decimal comma
print setlocale(LC_ALL, "en_DK.UTF-8")."\n";
print 1.1."\n";
print bccomp(1.1, 0)."\n";
print setlocale(LC_ALL, "pt_BR.UTF-8")."\n";
print 1.1."\n";
print bccomp(1.1, 0)."\n";
?>
Expected result:
----------------
C
1.1
1
en_DK.UTF-8
1,1
1
pt_BR.UTF-8
1,1
1
Actual result:
--------------
C
1.1
1
en_DK.UTF-8
1,1
0
pt_BR.UTF-8
1,1
0
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55160&edit=1
Thread (5 messages)