В настоящее время у меня есть десятичная (24,16) строка в базе данных mySQL; но когда я сохраняю данные на нем; он меняет значение, которое я вставляю. Насколько я могу сейчас видеть; макс знаков после запятой я должен был бы 16.MySQL decimal (24,16) производит странные результаты
Пример:
- Я положил в: 5,96666666666667
- Когда я получить данные, которые он возвращает 5,96666666666666995
ли это смысл? Должен ли я найти ответ в том, как mySQL справляется с этим; или я должен посмотреть в своем коде (Magento), но он был полностью адаптирован для работы с более чем четырьмя десятичными знаками, все, что мне нужно, чтобы выяснить, как сделать сделку с базой данных)
Я знаю, что это не очень конкретный код вопроса мудрый, но я просто пытаюсь обдумать эту проблему :-)
Спасибо, что указал мне в правильном направлении!
Является ли это результатом SQL Query или вы запустили это в PHP? –
Я подозреваю, что ваше значение с фиксированной точкой преобразуется в значение с плавающей точкой где-то в вашем приложении за пределами MySQL. Если вы зависеть от точного значения, вашему приложению придется использовать тип данных, чувствительный к данным с фиксированной точкой (поскольку Magento закодирован на очень слабо типизированном PHP, вам может потребоваться обработать ваше значение как строку). – eggyal
Выводится Magento. Я загляну в него завтра, чтобы узнать, смогу ли я узнать, где происходит конверсия, и вернуться сюда. –