У меня есть несколько расчетов на стороне клиента с JavaScript.PHP floatval странный парсинг
var total = (((3 * 24)/100) + 3); // результат 3.7199999999999998
Мне нужно сохранить этот номер 3.7199999999999998
в базе данных, как есть. База данных находится на MySQL, я использую Doctrine 2 для ORM, а сущность имеет точность, равную /** @Column(type="decimal", precision=32, scale=16, nullable=false) * */
, но после сохранения я вижу, что в базе данных есть только номер 3.72
, wtf? После некоторой проверки я обнаружил, что доктрина использует floatval
, и после выполнения этого floatval(3.7199999999999998)
вы получаете 3.72
!! Зачем?
Есть ли обходной путь для этого? как сказать доктрину, чтобы не использовать floatval и хранить значение как есть? также я не хочу использовать varchar для этого столбца.
Заранее благодарен!
Я не эксперт по доктрине2. но вы не можете изменить тип данных tp 'double'.? –
нет, я не могу. результат тот же '3.72' – Constantin