ты не описал общую задачу + многие переменные для нас невидимы, трудно тут будет помочь
можно написать свою функцию для округления, которая будет округлять до меньшего только числа, которые больше 1, а иначе будет всегда возвращать 1
по типу:
function _floor($number) {
if ($number > 1) return floor($number);
return 1;
}
и соответственно:
$res = $user->balance - _floor($amount * 0.25);
$restxt = 'Вы проиграли ' . number_format(_floor($amount * 0.25), 0, '', '.') . "$ (x0.75) $bad";
либо самому ставить проверки, что будет громоздко
if($rand < 150) {
$res = $user->balance - floor($amount);
$restxt = 'Вы проиграли ' . number_format(floor($amount), 0, '', '.') . '$ (x0) ❌';
}
if($rand >= 150 && $rand < 300) {
$res = $user->balance - floor($amount * 0.75);
$restxt = 'Вы проиграли ' . number_format(floor($amount * 0.75), 0, '', '.') . "$ (x0.25) $bad";
}
if($rand >= 300 && $rand < 450) {
$res = $user->balance - floor($amount * 0.5);
$restxt = 'Вы проиграли ' . number_format(floor($amount * 0.5), 0, '', '.') . "$ (x0.5) $bad";
}
if($rand >= 450 && $rand < 600) {
$res = $user->balance - floor($amount * 0.25);
$restxt = 'Вы проиграли ' . number_format(floor($amount * 0.25), 0, '', '.') . "$ (x0.75) $bad";
}
В этом коде работает все, но при $amount = 1 выводится 0.понимаю что это из за округления, но нужно сделать чтобы выводился 1.
(обязательно нужно округлять до меньшего).
Я уже перепробовал все и без толку. пробовал добавлять 1 к переменной если она равна 1, отдельно ее округлял до большего и тд.