Ich benötige eine Utility-Funktion, die einen ganzzahligen Wert (zwischen 2 und 5 Stellen) annimmt, der auf das nächste Vielfache von 5 anstatt auf das nächste Vielfache von 5 aufrundet. Folgendes habe ich erhalten:
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
Wenn ich renne round5(32)
, gibt es mir 30
, wo ich 35 will.
Wenn ich renne round5(37)
, gibt es mir 35
, wo ich 40 will.
Wenn ich renne round5(132)
, gibt es mir 130
, wo ich 135 will.
Wenn ich renne round5(137)
, gibt es mir 135
, wo ich 140 will.
etc...
Wie mache ich das?
javascript
math
rounding
Amit Erandole
quelle
quelle
round5(5)
5 oder 10 geben?Antworten:
Dies wird die Arbeit erledigen:
Es ist nur eine Variation der gemeinsamen Runden
number
auf nächste Vielfache vonx
FunktionMath.round(number/x)*x
, wobei jedoch.ceil
statt.round
macht es immer rund oben statt nach unten / oben nach mathematischen Regeln.quelle
const roundToNearestMultipleOf = m => n => Math.round(n/m)*m
Verwendung:roundToNearestMultipleOf(5)(32)
Dadurch wird die Zahl auf die nächste 5 gerundet. Um immer auf die nächste 5 aufzurunden, verwenden Sie
Math.ceil
. Um immer abzurunden, verwenden SieMath.floor
stattdessen anstelle vonMath.round
. Sie können diese Funktion dann wie jede andere aufrufen. Beispielsweise,wird zurückkehren:
quelle
So was?
quelle
Ich bin hier angekommen, als ich nach etwas Ähnlichem gesucht habe. Wenn meine Nummer -0, -1, -2 ist, sollte sie auf -0 steigen, und wenn sie -3, -4, -5 ist, sollte sie auf -5 begrenzt sein.
Ich habe mir diese Lösung ausgedacht:
Und die Tests:
quelle
Math.round
Grüße Paul
quelle
// mit Präzision runden
// mit Präzision auf 5 runden
quelle
Grund für die Verwendung von round ist, dass die erwartete Eingabe eine Zufallszahl sein kann.
Vielen Dank!!!
quelle
vielleicht?
quelle
int
ist nicht definiert. Vielleicht wollten SieparseInt
, aber dies wäre nicht notwendig, daMath.floor
eine Nummer zurückgegeben wird.