首页 文章

PDO FetchAll()数字舍入问题

提问于
浏览
0

我正在使用PDO在MSSQL数据库上执行存储过程 . 除了一个带有 PDOStatement::fetchAll() 的小故障外,一切都非常出色 . 从存储过程返回浮动时,而不是使用正确的值和小数位返回它们,它返回带有额外小数位的值,如下所示:

Database | Returned by PDO
-----------------------------------
614.9    | 614.89999999999998
1.18     | 1.1799999999999999

看起来似乎存在舍入问题......我不明白为什么它试图对数字进行舍入,当然它应该只是从数据库中取出值?

我试过了:

  • 在数据库上运行存储过程并且这非常正常,因此它绝对与PDO有关 .

  • 运行普通查询(而不是存储过程),这仍然会产生相同的结果 .

Obviously I can format the number myself, but this is irrelevant as I have to be sure that what I get from the database is exactly what is in the database!

1 回答

  • 1

    也许问题是如何在PHP内部存储浮点数?试着读一下in official docs .

    UPD: 您也可以使用PDOStatement::bindColumn将结果列指定为字符串(PDO :: PARAM_STR),但我没有检查它 .

相关问题