Код (Text): <?php $x = 1.5; $y = 2.5; for ($i=0; $i<10; $i++) $x += 0.1; if ($x == $y) echo 'X ravno Y'; else echo 'X ne ravno Y';
Ты фигурные скобки не забыл? Код (PHP): <?php $x = 1.5; $y = 2.5; for ($i=0; $i<10; $i++){ $x += 0.1; if ($x == $y) echo 'X ravno Y'; else echo 'X ne ravno Y'; echo '<br/>'; } И что пояснять, что $x никогда не равен $y? Если да, то тип float нужно приводить к нужной точности перед сравнением. Добавлено спустя 9 минут 38 секунд: Так всё ок. Код (PHP): <?php $x = 1.5; $y = 2.5; $y2 = (int)($y * 10000); for ($i=0; $i<10; $i++){ $x += 0.1; $x2 = (int)($x * 10000); if ($x2 == $y2) echo 'X ravno Y'; else echo 'X ne ravno Y'; echo '<br/>'; }
Со скобками всё нормально, а вот $y2 = (int)($y * 10000); это бред какой-то. P.S. написал на Pascal, Python, Ruby - та же фигня, точность представления вещественных чисел ограничена. Добавлено спустя 47 секунд: Танцы с бубном Код (Text): $x = 1.5; $y = 2.5; for ($i=0; $i<10; $i++) $x += 0.1; if ((string)$x == (string)$y) echo 'X ravno Y'; else echo 'X ne ravno Y';
Через приведение к точности функцией round тоже работает: Код (PHP): <?php $x = 1.5; $y = 2.5; for ($i=0; $i<10; $i++){ $x += 0.1; if (round($x, 1) == round($y, 1)) echo 'X ravno Y'; else echo 'X ne ravno Y'; echo '<br/>'; } 1. Без скобок у меня лично не работает. 2. Ещё не известно, что быстрей, первый способ с умножением, для получения целого числа, или вызов функции roud. Так что не бред. Вот к string приводить, это уже бред. PS. Если пишешь на Pascal, Python, Ruby, то вообще почему такие детские вопросы?
Со скобками задумывалась проверка последнего числа. Вот он, код моей мечты! Но всё равно как-то это бредово… Код (Text): $x = 1.5; $y = 2.5; for ($i=0; $i<10; $i++) $x += 0.1; if (round($x, 1) == round($y, 1)) echo 'X ravno Y'; else echo 'X ne ravno Y'; У меня позапрошлый проект на Zend Framework, прошлый на Django, текущие два финансовые и жирные на FuelPHP. Но я ведь от количества умнее не становлюсь - так что меняет количество знаний, а не глубина? Да ничего. Вот я и начал в саму суть копать, от XSS до вещественных чисел.