Javascript roundoff number to nearest 0.5

Write your own function that multiplies by 2, rounds, then divides by 2, e.g.

function roundHalf(num) {
    return Math.round(num*2)/2;
}

Just a stripped down version of all the above answers:

Math.round(valueToRound / 0.5) * 0.5;

Generic:

Math.round(valueToRound / step) * step;

Here's a more generic solution that may be useful to you:

function round(value, step) {
    step || (step = 1.0);
    var inv = 1.0 / step;
    return Math.round(value * inv) / inv;
}

round(2.74, 0.1) = 2.7

round(2.74, 0.25) = 2.75

round(2.74, 0.5) = 2.5

round(2.74, 1.0) = 3.0

Tags:

Javascript