На данный вопрос уже ответили:
Пишу такой код:
$sum = 161.98;
$sum = $sum * 100;
var_dump($sum); // float(16198)
var_dump((int)$sum); // int(16197)
Почему при переводе в int теряется единица
Попробуйте использовать округление в большую сторону
var_dump((int)ceil($sum));
Почему при переводе в int теряется единица
Потому, что из-за особенностей арифметики с плавающей точкой 161.98*100 может быть равно 16197.9999999.
При выводе float это учитывается, а при преобразовании в int дробная часть просто отбрасывается.
Что с этим делать - округлять перед преобразованием. Только не так, как советует IvanTokar, а до ближайшего целого, через round
Виртуальный выделенный сервер (VDS) становится отличным выбором
проблема в том, что происходит удаление всех файлов, независимо, от того какие файлы выбраны, не могу понять, в чем проблемаБуду очень рад...