Прошу помощи в таком вопросе. При сохранении числа с плавающей точкой в БД число сохраняется с 15 знаками после запятой, например 41.26 сохраняется как 41.259999999999998. Проверка select из бд показывает 41.26, но при выборке на PHP снова показывает 41.259999999999998. число берется из <input type="number"/>. Пробовал сохранять и как текст и используя параметризированные запросы. В чем может быть моя ошибка?
Цена, сумма, количество.) К базе на изменение доступа не имею, к сожалению. --- Добавлено --- При сохранении в базу ручками - данные вытаскиваются нормально
деньги так лучше вообще не хранить.. а количество, ну еще можно.. а если не получится поменять настройки таблицы, тогда у меня нет вариантов.. хотя нет.. есть.. хранить только целые числа... к примеру цена 10 рублей 78 копеек - хранить 1078 копеек - а где нужно делить на 10..
При сохранении в базу ручками - данные вытаскиваются нормально. Изменять формат не имею права- над базой еще десктоп версия крутится
ну у меня нет мыслей как это можно исправить без изменения типа колонки в таблице и/или формата хранения цены)
В php есть функции для работы с числами произвольной точности, а в базе если тебе нужна точность их надо хранить с типом decimal/numeric. Этот тип как раз хранит их как строки. Вроде так.
Я знаю про них. Но когда после такого Код (Text): .SqlExec(" update table set quantity= cast('".$целаяЧастьСтрока.".".$дробнаяЧастьСтрока."' as numeric (16,2)) where ...) все равно показывается фигня, я вообще потух..)) В базе все ок)