Website-Suche

Javascript rundet Zahl auf das nächste 0,5


Kann mir jemand eine Idee geben, wie ich eine Zahl auf das nächste 0,5 abrunden kann.
Ich muss Elemente auf einer Webseite entsprechend der Bildschirmauflösung skalieren und dafür kann ich die Schriftgröße nur in pt auf 1, 1,5 oder 2 und so weiter festlegen.

Wenn ich runde, rundet es entweder auf eine Nachkommastelle oder gar nicht. Wie kann ich diese Aufgabe erledigen?

Antwort #1

Schreiben Sie Ihre eigene Funktion, die mit 2 multipliziert, rundet und dann durch 2 teilt, z.B.

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

Antwort #2

Hier ist eine allgemeinere Lösung, die für Sie nützlich sein könnte:

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

Antwort #3

Nur eine abgespeckte Version aller oben genannten Antworten:

Math.round(valueToRound / 0.5) * 0.5;

Allgemein :

Math.round(valueToRound / step) * step;

Verwandte Artikel