PHP ошибка расчета чисел float

объясните пожалуйста почему так и как можно обойти эту проблему:

(-1 * (float)0) === 0) // false

Рассчитываю сумму скидки на сайте, и вот такое произошло при скидке 100%


Ответы (1 шт):

Автор решения: Mcile

как можно обойти эту проблему

так как по разные стороны сравнения типы данных разные вы можете избежать этого двумя способами 1 использовать неточный тип сравнения

(-1 * (float)0) == 0)

2 сравнивать одинаковые типы данных

(-1 * (float)0) === (float)0
→ Ссылка