Potrzebuję funkcji narzędzia, która przyjmuje wartość całkowitą (od 2 do 5 cyfr długości), która zaokrągla w górę do następnej wielokrotności 5 zamiast najbliższej wielokrotności 5. Oto, co otrzymałem:
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
Kiedy biegnę round5(32)
, to daje mi 30
, gdzie chcę 35.
Kiedy biegam round5(37)
, daje mi 35
, gdzie chcę 40.
Kiedy biegnę round5(132)
, daje mi to 130
, gdzie chcę 135.
Kiedy biegam round5(137)
, daje mi to 135
, gdzie chcę 140.
itp...
Jak mam to zrobic?
javascript
math
rounding
Amit Erandole
źródło
źródło
round5(5)
dać 5 czy 10?Odpowiedzi:
To wystarczy:
Jest to tylko odmiana zwykłego zaokrąglania
number
do najbliższej wielokrotnościx
funkcjiMath.round(number/x)*x
, ale użycie.ceil
zamiast.round
powoduje, że zawsze zaokrągla w górę zamiast w dół / w górę zgodnie z zasadami matematycznymi.źródło
const roundToNearestMultipleOf = m => n => Math.round(n/m)*m
roundToNearestMultipleOf(5)(32)
Zaokrągli to liczbę do najbliższej 5. Aby zawsze zaokrąglić w górę do najbliższej 5, użyj
Math.ceil
. Podobnie, aby zawsze zaokrąglić w dół, użyjMath.floor
zamiastMath.round
. Możesz wtedy wywołać tę funkcję, tak jak każdą inną. Na przykład,wróci:
źródło
Lubię to?
źródło
Przyjechałem tutaj, szukając czegoś podobnego. Jeśli mój numer to –0, –1, –2, powinien dochodzić do –0, a jeśli jest –3, –4, –5, powinien sięgać –5.
Wymyśliłem takie rozwiązanie:
A testy:
źródło
Math.round
Pozdrawiam Paul
źródło
// okrągłe z precyzją
// precyzyjnie zaokrąglij do 5
źródło
powodem używania round jest to, że oczekiwane dane wejściowe mogą być liczbą losową.
Dzięki!!!
źródło
może?
źródło
int
nie jest zdefiniowany. Może chciałeśparseInt
, ale nie byłoby to konieczne, ponieważMath.floor
zwraca liczbę.