Cum se rotunjește un număr întreg în sus sau în jos la cel mai apropiat 10 folosind Javascript (Programare, Javascript)

Abs a intrebat.

Folosind Javascript, aș dori să rotunjesc un număr trecut de un utilizator la cel mai apropiat 10. De exemplu, dacă este trecut 7 ar trebui să returnez 10, dacă este trecut 33 ar trebui să returnez 30.

4 răspunsuri
Gumbo

Se împarte numărul cu 10, se rotunjește rezultatul și se înmulțește din nou cu 10:

Comentarii

  • Această tehnică funcționează, de asemenea, folosind Math.floor, dacă doriți să împiedicați rotunjirea în sus –  > Por Alex W.
  • Poți folosi metoda Math.ceil pentru a rotunji în sus. –  > Por Kerem Demirer.
user187291
Math.round(x / 10) * 10

CMP

Unde i este un int.

Pentru a rotunji la cel mai apropiat multiplu de 10, de ex.

11 devine 10
19 devine 10
21 devine 20

parseInt(i / 10, 10) * 10;

Pentru a rotunji în sus la cel mai apropiat multiplu de 10, de exemplu

11 devine 20
19 devine 20
21 devine 30

parseInt(i / 10, 10) + 1 * 10;  

Comentarii

  • Nu ar trebui să fie: (parseInt(i / 10, 10) + 1) * 10; ? –  > Por webGuy.
  • @user3924331, aveți dreptate. Răspunsul corect este (parseInt(i / 10, 10) + 1) * 10; Edițiile trebuie să aibă cel puțin 6 caractere, deci nu este posibil să adăugați doar aceste două paranteze… ¯_(ツ)_/¯ –  > Por Fernando.
  • Până la cel mai apropiat 10 se adaugă +10 pentru valoarea 100, deci devine 110. Jos până la cel mai apropiat 10 nu scade -10 pentru valoarea 100, deci 100 rămâne 100. –  > Por TitanFighter.
cjbarth

Aveam nevoie de ceva similar, așa că am scris o funcție. Am folosit funcția pentru rotunjirea zecimală aici și, din moment ce o folosesc și pentru rotunjirea numerelor întregi, o voi seta ca răspuns și aici. În acest caz, trebuie doar să treceți numărul pe care doriți să-l rotunjiți și apoi 10, numărul la care doriți să rotunjiți.

function roundToNearest(numToRound, numToRoundTo) {
    return Math.round(numToRound / numToRoundTo) * numToRoundTo;
}

Comentarii

  • Îmi place că ați transformat-o într-o funcție, dar oferă aceasta un rezultat diferit de răspunsul acceptat și, dacă nu, de ce ați folosit o formulă diferită? –  > Por RozzA.
  • Returnează aceeași valoare, dar formula este diferită pentru că este mai ușor de utilizat. De exemplu, dacă doriți să rotunjiți la cel mai apropiat .25, puteți folosi pur și simplu .25 ca al doilea argument. Dacă ar fi să folosiți formulele din celelalte răspunsuri, ar trebui să folosiți 4 ca al doilea argument atunci când doriți să rotunjiți la .25, ceea ce este contra-intuitiv. –  > Por cjbarth.
  • poți dovedi asta? tocmai am făcut câteva teste în consolă & răspunsul acceptat returnează răspunsul corect folosind .25 ca al doilea argument – am transformat-o într-o funcție one liner function roundTo(x,y){return Math.round(x / y) * y} –  > Por RozzA.
  • @RozzA, ai dreptate. Mă gândeam la răspunsurile dintr-o altă întrebare similară. Voi simplifica funcția mea. –  > Por cjbarth.