Alex
Белая или черная? Это важно для понимания уровня дева)
Pavel
Блин
Pavel
Столкнулся с проблемой
Pavel
php
for($i = 0.0; $i <= 1.0; $i+= 0.1){
if($i === 0.5){
echo '$i === 0.5';
break;
}
}
Pavel
Не сравнивается и всё тут
Pavel
При том, к примеру, если делать на каждой итерации
var_dump($i, 0.5), то в какой-то момент можно увидеть
float(0.5) float(0.5)
Pavel
Подозреваю, что проблемы с представлением чисел с плавающей точкой
Pavel
Но почему тогда
$a = 0.5;
$b = 0.5;
var_dump($a === $b); // bool(true)
Pavel
Я бы подумал. что проблема возникает при математических операциях, но опять таки
$a = 0.5;
$b = 0.6;
var_dump(($a+0.1) === $b); // bool(true)
Vladislav
Ты точно значение счетчика на каждой итерации пробовал вывести?
Pavel
да
Pavel
в сообщении с циклом опечатался
Vladislav
Ааа... ты уже исправил код
Pavel
там, конечно же, не $i++
Vladislav
У меня все выполнилось ожидаемо
Vladislav
PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Pavel
А попробуй теперь $i = 24.0; $i <= 40.1
Pavel
И в условии, к примеру
if($i === 20.0){
echo '$i === 20.0';
}
Vladislav
Interactive mode enabled
php > for($i = 0.0; $i <= 1.0; $i+= 0.1){
php { if($i === 0.5){
php { echo '$i === 0.5';
php { break;
php { }
php { }
$i === 0.5
Pavel
что-то непонятное
Pavel
сейчас, код кину
🐴
float нельзя проверять на равенство, только на больше/меньше
🐴
0.1 + 0.2 не равно 0.3
Pavel
`
for($i = 18.5; $i <= 22.1; $i += 0.1){
var_dump($i, ($i === 20.0), ($i === 20));
echo PHP_EOL;
}
...
float(20)
bool(false)
bool(false)
🐴
php > var_dump (0.1 + 0.2 === 0.3);
php shell code:1:
bool(false)
php >
🐴
и что такое двоичная система
Vladislav
php > for($i = 18.5; $i <= 22.1; $i += 0.1){
php { var_dump($i, ($i === 20.0), ($i === 20));
php { echo PHP_EOL;
php { }
float(20)
bool(false)
bool(false)
🐴
и почему 0.3 нельзя записать как конечную дробь в двоичной системе
🐴
хорошо бы начать с азов математики, прежде чем браться за программирование
Vladislav
Это ты хочешь рассказать за знак, степень и мантису?
🐴
дада
🐴
и IEEE754
Vladislav
@jsnow0177
https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D1%81_%D0%BF%D0%BB%D0%B0%D0%B2%D0%B0%D1%8E%D1%89%D0%B5%D0%B9_%D0%B7%D0%B0%D0%BF%D1%8F%D1%82%D0%BE%D0%B9
Pavel
это я знаю
Pavel
читал ещё, когда тут кто-то рассказывал о 0.7+0.1
🐴
это я знаю
тогда зачем ты проверяешь флоаты на равенство?
Pavel
прочитал и забыл
Pavel
вообще, впервые за несколько лет мне приходится делать что-то с числами с плавающей точкой, так что, думаю. можно раз затупить
🐴
Pavel
Кстати. Ещё вопрос. Кто-нибудь сталкивался с появляющимися периодически php-файлами закодированными в base64 на сайтах с вордпрессом?
Pavel
Самому разбираться времени не было, да и вп не люблю, но может кто встречался с подобным.
Pavel
Думал, что плагины, но на сайте, вроде, никаких плагинов, которые могли бы кидать в корень сайта эти файлы нет. Потом предположил, что, мб, у кого-то появился доступ к ftp или к дыре в вп, но по логам никто кроме меня не коннектился
Vladislav
Тебе по прошлому вопросу
for($i = 18.5; $i <= 22.1; $i += 0.1){
var_dump($i);
printf('%.50f'.PHP_EOL, $i);
printf('%.50f'.PHP_EOL, 20.0);
var_dump($i === 20.0);
}
Pavel
Та уже тема прояснилась, но спасибо
Vladislav
Через округления можешь добиться нужного результата
Sergey
MIKRI
Anonymous
Думал, что плагины, но на сайте, вроде, никаких плагинов, которые могли бы кидать в корень сайта эти файлы нет. Потом предположил, что, мб, у кого-то появился доступ к ftp или к дыре в вп, но по логам никто кроме меня не коннектился
бывает зараза в шаблонах, которая поражает всю файловую систему сервера )
Anonymous
У знакомого просто после вп сайта на всех остальных появились аналогичные файлы.
Anonymous
но это не точно
~
посоны что такое sap/abap?
Ivan
Буржуйская erp
Sergey
Vitaly
а там как в 1С, на родном языке?
Vitaly
ICH DAS FANTATICH var
Sergey
нет, они не на столько упоротые
Ivan
Там насколько помню нельзя проводить документы задним числом, поэтому оно в нашей рашке не прижилось
Sergey
🦔
я не умею в сап
🦔
хелбой вроде умел в сап
🦔
ну немецкий хуёв, да
🦔
в обоих случаях
Anonymous
пришел ёж и чат наполнился хуями
Andrey
Vitaly
Vitaly
ICH BIEN KHUEVY DOICHE SPEAKER
Anonymous
слыш
Anonymous
я хожу
Anonymous
а ты стреляешь
Anonymous
Виталик
Alex
Мне кажется что все кто свою страну называют рашкой, и живут также как называют - то х..ва
Anonymous
Anonymous
Или ты пидараха зомбированая