【发布时间】:2023-03-07 18:12:01
【问题描述】:
我有一个类似于以下内容的查询。我从 PDO/PHP 得到的结果与在服务器上的交互式 SQL 提示符中得到的结果不同。通过交互式 SQL 运行此查询时,我可以正确看到交易金额(即 45.34)。
当我通过 PDO 提取结果时,我看到错误的结果加上错误的精度(即 45.3400000000001)。 PDO 中有没有可以设置为返回存储在数据库中的数据的东西?
Select tl.ID
, tl.Transaction_Amount
from transactionLog tl
更新:查询返回的数据正在被格式化为 json。我已经验证了 pre-json 数据也包含错误数据。 antoox 的一个答案建议在查询中的 db 级别进行四舍五入。不幸的是,这无济于事,因为查询在 SQL 提示符下运行时会返回正确的数据,并且一旦通过 PDO 就会不正确地显示舍入与否。 antoox 也提到了 PHP 错误 #53632。不幸的是,这个错误不是我们环境中的一个因素,因为我们使用的是更新的版本。
更新: Sybase Central 报告的数据库字段为数字大小 10,小数位数为 2。
【问题讨论】:
-
我添加了包含此信息的更新。数字大小为 10,比例为 2。谢谢。