我有一个类似于下面的查询。我从 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。