我正在使用 PDO 在 MSSQL 数据库上执行存储过程。除了一个小故障之外,一切都非常出色PDOStatement::fetchAll()
。从存储过程返回浮点数时,它不是以正确的值和小数位返回它们,而是返回带有额外小数位的值,如下所示:
Database | Returned by PDO
-----------------------------------
614.9 | 614.89999999999998
1.18 | 1.1799999999999999
似乎存在四舍五入的问题......我不明白它为什么要对数字进行四舍五入,当然它应该只是从数据库中获取它出现的值?
我努力了:
- 在数据库上运行存储过程,这绝对可以正常工作,因此它肯定与 PDO 有关。
- 运行普通查询(而不是存储过程),这仍然会产生相同的结果。
显然我可以自己格式化数字,但这无关紧要,因为我必须确保我从数据库中得到的正是数据库中的!