Rotunjiri numere în JavaScript
De ce să rotunjească numere?
Una dintre cele mai interesante fapte despre JS este că limba este, de fapt, nu a stoca numere întregi: numerele sunt reprezentate în punctul Floating binar. Aceasta, împreună cu faptul că nu toate fracțiunile pot fi reprezentate ca număr zecimal, cu un număr finit de cifre după virgulă, înseamnă că JS poate obține următorul rezultat (de la consola):
În cele mai multe cazuri, dintr-un punct de vedere practic, această eroare nu va face o diferență (eroare este una quintillion 2), dar este un pic dezamăgitoare. Un rezultat puțin ciudat poate fi obținut de asemenea atunci când se lucrează cu monedă, valori procentuale sau unități de dimensiune fișier. Pentru a evita această eroare, trebuie să rotunjească un număr sau introduceți un anumit număr de zecimale.
Rotunjirea are multe aplicații practice: de exemplu, în cazul în care utilizatorul se mută gama elementului cursor nu pentru a lucra cu numere zecimale, ar fi mai ușor să rotunji valoarea rezultată la cel mai apropiat număr întreg.
rotunjirea zecimale
Pentru tăierea numerelor zecimale pot fi utilizate toFixed () și toPrecision. Ambele tehnici iau doar un singur argument, care specifică, respectiv numărul de „cifre semnificative“ (adică, numărul total de cifre din numărul) sau numărul de zecimale:

Tehnologii moderne de dezvoltare web
AngularJS, WebPACK, NodeJS, ReactJS, typescript, Gulp, Git, Github.
Aflați totul despre cele mai noi tehnologii in dezvoltarea web
Dacă toFixed () argument nu este specificat, implicit este setat 0; fără zecimale, valoarea maximă de 20.
Dacă nu este dat nici un argument toPrecision, numărul nu se schimbă.
Anunț important
Ambele metode toFixed () și toPrecision () returnează o reprezentare rotunjită a șirului rezultat și nu un număr. Ie atunci când „adaugand“ variabile rotunjite și se va face randNum concatenare în loc de adăugare:
Dacă doriți să arunce rezultatul la numărul, folosiți parseFloat:
(Rețineți că numărul 5 este rotunjit, cu excepția cazurilor rare, așa cum este detaliat mai jos). De asemenea, metodele toFixed () și toPrecision () sunt utile atunci când aveți nevoie de un atribut întreg la partea zecimală. Acest lucru este util mai ales atunci când se ocupă cu valute:
Rețineți că, în cazul în care numărul de cifre mai mari decât argumentul toPrecision, aceasta va fi înregistrată sub forma științifică (cu o mantisă și ordine):
Cum pentru a evita greșelile atunci când rotunjire numere zecimale
În unele cazuri, toFixed toPrecision rotunjite și 5 nu sunt în sus și în jos:
Rezultatul de mai sus ar trebui să fie 1.01 în loc de 1. Dacă aveți o precizie de important, v-aș recomanda să rezolve de Jack L Moore, care utilizează calcule numere exponențiale:
Pe MDN are o soluție, chiar mai robust.
Trunchierea numerelor zecimale
Toate metodele de mai sus sunt prezentate rotunjite numere zecimale. Pentru a trunchia număr pozitiv până la două zecimale, înmulțim cu 100, se taie și se împarte rezultatul de 100:
Dacă doriți să adăugați un pic de flexibilitate, puteți utiliza operatorii pe biți
În următorul articol voi spune mai multe în detaliu cu privire la operațiunile la nivel de bit.

Tehnologii moderne de dezvoltare web
AngularJS, WebPACK, NodeJS, ReactJS, typescript, Gulp, Git, Github.
Aflați totul despre cele mai noi tehnologii in dezvoltarea web
Rotunjirea la cel mai apropiat număr
Pentru rotunjirea un număr zecimal în sus sau în jos la cel mai apropiat număr întreg utilizarea Math.round ():
Rețineți că „jumătate din valoarea“ de tip .5 se rotunjește.
Rotunjește la cel mai apropiat număr întreg
Dacă doriți să rotunjească numărul în jos, utilizați Math.floor:
Rețineți că, în acest caz, rotunjit în jos toate numerele, chiar negative. Imaginați-vă un zgârie-nori cu un număr infinit de etaje în sus sau în jos (etajele inferioare sunt numere negative). Dacă sunteți într-un lift între minus al doilea și al treilea minus etajele (valoarea -2.5), metoda Math.floor vă va aduce la -3 podea:
Dacă nu doriți numerele negative sunt, de asemenea, rotunjite în jos, utilizați Math.trunc. Această metodă este acceptată în toate browserele moderne), cu excepția IE / Edge):
Pe MDN are, de asemenea, un Polyphemus de trei linii, care se adaugă suport Math.trunc pentru browsere mai vechi și IE / Edge.
Rotunjind până la cel mai apropiat număr întreg
Pe de altă parte, dacă doriți să rotunjească numărul, utilizați Math.ceil. Din nou, imaginați-vă un ascensor fără sfârșit: Math.ceil te duc întotdeauna la următorul nivel superior, indiferent de numărul de caractere:
Rotunjirea în sus sau în jos la cel mai apropiat multiplu de
Dacă doriți să rotunjească numărul la cel mai apropiat multiplu de cinci, cel mai ușor de a crea o funcție care împarte numărul de 5, rotunjirea spate și se multiplică:
Dacă doriți să rotunjească numărul de multipli diferiți, puteți schimba funcția și să o transmită ca argument cele două valori, numărul și frecvența:
Pentru a apela o funcție, trebuie să specificați doi parametri, numărul mare și multiplicitate:
Pentru rotunjirea în sus sau în jos în funcții loc ceil sau podea.
Domeniul de reglaj pentru numărul de
Se întâmplă foarte mult atunci când vom obține un număr de X, și trebuie să-l conducă într-un anumit interval. De exemplu, avem nevoie de un număr de la 1 la 100, și avem 123. Vor veni la îndemână metode min (întotdeauna returnează cel mai mic dintr-un set de numere) și maxim (cel mai mare număr din set). Un exemplu cu un interval de la 1 la 100:
Acesta poate fi transformat într-o funcție sau o extensie a clasei Number, opțiunea de prelungire a primul care a propus Daniel X. Moore:
Rotunjirea Gaussian
Rotunjirea Gaussian, care este, de asemenea, referire la rotunjirea „bancher“ rotunjiri convergentă, rotunjiri olandeză și par-impar, rotunjite, această metodă de rotunjire, fără părtinire statistică; în numerele de rotunjire obișnuite supraevaluat în mod automat. Rotunjirea numărului Gaussian dat la cel mai apropiat chiar. Cel mai bine cunoscut pentru mine soluția y Tim Down:
numere zecimale în CSS
Plus pentru noi este faptul că browserele moderne să înțeleagă valoarea zecimală atribuită elementelor de bloc, inclusiv dobânda și pixeli.
Revizie: Echipa webformyself.

Tehnologii moderne de dezvoltare web
AngularJS, WebPACK, NodeJS, ReactJS, typescript, Gulp, Git, Github.
Aflați totul despre cele mai noi tehnologii in dezvoltarea web
Cele mai multe știri IT si dezvoltare web pe canalul nostru-Telegram
