Bug #71652 [Opn->Fbk]: Wrong float values will be returned
| From: | ab@php.net | Date: | Sun, 29 May 2016 16:41:40 +0000 |
| Subject: | Bug #71652 [Opn->Fbk]: Wrong float values will be returned | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-201324@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=71652&edit=1
ID: 71652
Updated by: ab@php.net
Reported by: b dot vonheesen at maprom dot de
Summary: Wrong float values will be returned
-Status: Open
+Status: Feedback
Type: Bug
Package: PDO Firebird
Operating System: Ubuntu 14.04 LTS 64-Bit
PHP Version: 7.0.3
Block user comment: N
Private report: N
New Comment:
Currently i don't reproduce this issue with Firebird 2.5.5. Doing "SET SQL DIALECT 1"
before your snippet, but the behavior is correct. Could you please provide a bit more precise
reproduce way?
Also, probably *100 is not what one wants to have, fe if the column definition were NUMERIC(15,3).
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2016-03-22 15:22:58] chris dot spb25 at gmail dot com
these fields are numeric (15,2)
Expected result:
stdClass Object
(
[PEDVRTOTAL] => 32.5
[PEDVRDESCTO] => 0
[PEDVRDESCTOSER] => 0
[TOTAL_FINAL] => 32.5
)
Actual result:
stdClass Object
(
[PEDVRTOTAL] => 2065761874.56
[PEDVRDESCTO] => 3096554025.60
[PEDVRDESCTOSER] => 4127346176.64
[TOTAL_FINAL] => 10312099082.88
)
------------------------------------------------------------------------
[2016-03-22 15:07:08] chris dot spb25 at gmail dot com
result of my query:
See the attribute values:
PEDVRTOTAL
PEDVRDESCTO
PEDVRDESCTOSER
TOTAL FINAL
[0] => stdClass Object
(
[ID_PEDIDO] => 218488
[PEDDTEMIS] => 2015-12-01 00:00:00
[PEDCODIGO] => 206265.001
[PEDVRTOTAL] => 2065761874.56
[PEDVRDESCTO] => 3096554025.60
[PEDVRDESCTOSER] => 4127346176.64
[EMPCODIGO] => 1
[EMPRAZSOCIAL] => WINNIKES IND. E COM. DE OCULOS LTDA
[PEDDTSAIDA] =>
[PEDORDEMCOMPRA] =>
[TOTAL_FINAL] => 10312099082.88
[NFCODIGO] => 000002.3
[NFDTEMIS] => 2015-12-01 00:00:00
)
------------------------------------------------------------------------
[2016-03-22 14:56:40] chris dot spb25 at gmail dot com
I also am with this same problem.
I'm using php 7.0.4 nts 32bit on windows platform.
------------------------------------------------------------------------
[2016-03-03 13:45:30] cmb@php.net
This appears to be a duplicate of bug #65690.
------------------------------------------------------------------------
[2016-02-23 15:41:42] b dot vonheesen at maprom dot de
Description:
------------
Starting position:
Ubuntu 14.04 LTS 64-Bit, PHP 7.0.3
Interbase with dialect 1
All columns of type NUMERIC return wrong values.
The returned value is the ordinal position multiplied with 0.4 instead of the correct value.
Sorry, I don't know how to use git diff so I created a diff with
diff -Naur firebird_statement.c firebird_statement.new > patch.c
Test script:
---------------
$pdo = new PDO('firebird:...');
$pdo->query('CREATE TABLE test (id INTEGER, name VARCHAR(20), price NUMERIC(15,2), price2
NUMERIC(15,2))');
$pdo->query('INSERT INTO test(id, name, price, price2) VALUES(1, 'Test1', 6.45,
7.25)');
$pdo->query('SELECT id, name, price FROM test');
$result = $pdo->fetchAll();
Expected result:
----------------
$result = [
[
'id' => 1, // column 0
'name' => 'Test1', // column 1
'price' => 6.45, // column 2
'price2' => 7.25 // column 3
]
Actual result:
--------------
$result = [
'id' => 1, // column 0
'name' => 'Test1', // column 1
'price' => 0.8, // column 2: 0.4 * 2
'price2' => 1.2 // column 3: 0.4 * 3
]
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=71652&edit=1