У меня есть какое-то значение, как 2.3
, 3.6
,3.8
Теперь я хочу получить значение как ближайшую дробь.
предполагать
когда значение 2.3
тогда измененное значение будет 2.5
когда значение 2.2
тогда измененное значение будет 2
Я так понимаю, что вы хотите округлить до ближайшего «полуцелого».
Если так, то вы можете использовать round()
функция, но с небольшими модификаторами.
Так как round()
возвращает только целые числа, вам нужно изменить свое значение перед округлением и снова после округления в обратном порядке, чтобы оно заработало.
Поскольку вы хотите округлить до 0,5, что равно 1/2, вам нужно сначала умножить свое значение на 2, а затем разделить его обратно.
Таким образом, картина здесь:
$roundedVal = round($origVal*2)/2;
И примеры из вашего вопроса:
var_dump(round(2.3*2)/2); //2.5
var_dump(round(2.2*2)/2); //2.0
Вам нужно изучить PHP функцию round () и ее необязательные флаги.
$myValue = -5;
echo abs($myValue); //outputs 5