Math.floor(value) + 0.5
должен это сделать.
Кроме того, вы должны уточнить свои спецификации ... Поскольку ближайшее значение 0,5 для 2 равно 1,5 И 2,5, они оба находятся на одном и том же «расстоянии».
Я понимаю, что ваш пример имеет дело с этим сценарием, переходя к ближайшему верхнему значению 0,5, но действительно ли это то, что вы хотите?