Я использую PDO для выполнения хранимых процедур в базе данных MSSQL. Все работает совершенно блестяще, кроме одного маленького зажима с PDOStatement::fetchAll()
. При возврате поплавков из хранимой процедуры, вместо того, чтобы вернуть их правильное значение и знак после запятой, то возвращается значение с помощью дополнительных знаков после запятой, как так:PDO FetchAll() Number Rounding Issue
Database | Returned by PDO
-----------------------------------
614.9 | 614.89999999999998
1.18 | 1.1799999999999999
Кажется, как будто округление вопросов ... Я не понимаю, почему он пытается округлить номер в любом случае, конечно, он должен просто взять значение из базы данных, как она появляется?
Я попытался:
- Запуск хранимой процедуры на БД и это работает абсолютно нормально, поэтому это определенно что-то делать с PDO.
- Выполнение обычного запроса (вместо хранимой процедуры), и это все равно дает тот же результат.
Очевидно, что я могу форматировать число себя, но это не имеет значения, как я должен быть уверен, что я получаю из базы данных именно то, что находится в базе данных!
Вы уверены, что это не так? То, что вы видите в «Базете», округляется? –
Что такое тип данных для этого столбца? –
@OneTrickPony Это справедливая точка! Как я мог знать? –