gpt4 book ai didi

php - 使用 PDO、PHP 和 sybase 错误地增加了精度

转载 作者:搜寻专家 更新时间:2023-10-31 22:07:20 26 4
gpt4 key购买 nike

我有一个类似于下面的查询。我从 PDO/PHP 得到的结果与在服务器上的交互式 SQL 提示符中得到的结果不同。通过交互式 SQL 运行此查询时,我正确地看到了交易金额(即 45.34)。

当我通过 PDO 提取结果时,我看到不正确的结果以及错误添加的精度(即 45.3400000000001)。 PDO 中是​​否有一些东西可以设置为返回存储在数据库中的数据?

Select tl.ID
, tl.Transaction_Amount
from transactionLog tl

更新:正在将查询返回的数据格式化为 json。我已验证 pre-json 数据也包含虚假数据。 antoox 的一个答案建议在查询中的数据库级别进行舍入。不幸的是,这并没有帮助,因为查询在 SQL 提示符下运行时返回正确的数据,并且一旦通过 PDO 就四舍五入或不正确地显示。 Antoox 还提到了 PHP 错误 #53632。不幸的是,这个错误不是我们环境中的一个因素,因为我们使用的是更新的版本。

更新:根据 Sybase Central 的报告,数据库字段的数字大小为 10,标度为 2。

最佳答案

几个版本的 PHP 都有一个 floating point bug .

您可以执行如下查询:

SELECT tl.ID, round(tl.Transaction_Amount, 2) FROM transactionLog tl

,或者更新你的php版本。

关于php - 使用 PDO、PHP 和 sybase 错误地增加了精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com