2011-01-27 18 views
9

Dodaję i odejmuję pływaki w javascript, i muszę wiedzieć, jak zawsze przyjmować pułap dowolnej liczby, która ma więcej niż 3 miejsca dziesiętne. Na przykład:javascript - pułap kwoty w dolarach

3.19 = 3.19

3.191 = 3.20

3.00000001 = 3,01

Odpowiedz

23
num = Math.ceil(num * 100)/100; 

choć due to the way floats are represented, może nie dostać czysty numer do dwóch miejsc po przecinku. Dla celów wyświetlania zawsze rób: num.toFixed(2).

+1

to działało świetnie, dziękuję (w rzeczywistości odpowiedział na moje pytanie). Ale. . . Prawdopodobnie zamierzam przyjąć rady Amnona, rób wszystko jako liczby całkowite – bmarti44

+0

@ bmarti44, rada Amnona jest dobra, ale słowo ostrzeżenia. Używanie liczb całkowitych nie przyniesie żadnych problemów podczas dodawania i mnożenia, ale nie popadnie w fałszywe poczucie bezpieczeństwa: te same problemy pojawią się podczas dzielenia, np. '1/10 * 3'. Ale oczywiście w zależności od aplikacji może się to nie zdarzyć. –

10

Właściwie nie sądzę, że chcesz reprezentować kwoty w dolarach jako float, z tego samego powodu cytowanego przez Box9. Na przykład 0.1 * 3! = 0.3 w mojej przeglądarce. Lepiej reprezentować je jako liczby całkowite (np. Centy).

+0

Wierzę, że masz rację, przełączając wartości zmiennoprzecinkowe na liczby całkowite, więc przyjmuję Twoją radę. Dziękuję za szybką odpowiedź. – bmarti44

Powiązane problemy