@markonix: Generalnie wszystko zależy od konkretnej sytuacji, jednak tutaj powinieneś skorzystać z
liczb o "stałej"/dużej precyzji*. W PHP do dyspozycji masz chociażby
GMP.
Ewentualnie do porównywania liczb zmiennoprzecinkowych w przypadkach, gdzie nie interesuje nas aż tak bardzo ich dokładność można skorzystać z prostej funkcji:
function compareFloats($a, $b, $epsilon = 0.00001) {
if ($a === $b) {
return true;
}
return abs(($a - $b) / $b) <= $epsilon; }
// następie:
if (!compareFloats($price, 50.4) && $price > 50.4) {
// ...
}
* Nie mam najmniejszego pojęcia jakie będzie poprawne przetłumaczenie angielskiego
arbitrary-precision.