@Tutucu

Почему выборка из БД where в Laravel не находит сотые от числа?

Столкнулся с такой проблемой - есть выборка из бд в ларавел:
Valute::where('valute', $valute)->first();
Если $valute равен 0.1 и выше, то все ок, если $valute равен 0.09 и ниже, то ничего не находит, хотя записи в БД точно есть. В чём проблема?
5e86f41e40055142642538.png
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
JhaoDa
@JhaoDa
LaravelRUS Team
Потому что за использование float для хранения денег давно пора отрубать руки. Используй хотя бы decimal, а в идеале надо хранить деньги как целые числа — в копейках, центах и прочем. Ларавел тут совершенно ни при чём.
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
потому что числа с плавающей запятой НЕЛЬЗЯ проверять на равенство. это аксиома. изучай как числа представляются в памяти.

p.s. а если ты хранишь денежную сумму - храни ее в ЦЕЛЫХ копейках/центах . (есть еще тип decimal, но с ним тоже проблем хватает)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы