Chcę użyć JavaScript, aby zaokrąglić liczbę w górę. Ponieważ liczba jest walutą, chcę ją zaokrąglić w górę, jak w tych przykładach (2 miejsca po przecinku):
- 192,168 => 192,20
- 192,11 => 192,20
- 192,21 => 192,30
- 192,26 => 192,30
- 192,20 => 192,20
Jak to osiągnąć za pomocą Javascript? Wbudowana funkcja JavaScript zaokrągla liczbę w oparciu o standardową logikę (mniej i więcej niż 5, aby zaokrąglić w górę).
javascript
rounding
cyberfly
źródło
źródło
ceil()
otrzymasz od nas193
, więc musimy upewnić się, że cała precyzja, którą chcemy zachować, jest przed przecinkiem. Następnie wykonujemy operację odwrotną, aby przywrócić „oryginalną” wartość.192.19999999999997
, możesz zgłosić.toFixed(1)
się donum
Trochę późno, ale może w tym celu utworzyć funkcję javascript wielokrotnego użytku:
Wywołaj funkcję jako
źródło
Normalne zaokrąglanie będzie działać z niewielkimi zmianami:
a jeśli chcesz zachować format waluty, możesz użyć metody liczbowej
.toFixed()
Chociaż to sprawi, że będzie to String =)
źródło
price.toFixed(2)
Bardzo blisko odpowiedzi TheEye , ale zmieniam małą rzecz, aby działała:
źródło
OP oczekuje dwóch rzeczy:
A. zaokrąglić w górę do wyższych dziesiątych i
B. pokazać zero na miejscu setnym (typowa potrzeba w przypadku waluty).
Wydaje się, że spełnienie obu wymagań wymagałoby oddzielnej metody dla każdego z powyższych. Oto podejście, które opiera się na sugerowanej odpowiedzi Suryakirana:
Ważna uwaga: to rozwiązanie daje zupełnie inny wynik z liczbami ujemnymi i wykładniczymi.
Aby porównać tę odpowiedź z dwoma bardzo podobnymi, zobacz następujące 2 podejścia. Pierwsza po prostu zaokrągla normalnie do najbliższej setnej, a druga po prostu zaokrągla w górę do najbliższej setnej (większej).
źródło
ok, odpowiedź została udzielona, ale pomyślałem, że chciałbyś zobaczyć moją odpowiedź, która raz wywołuje funkcję math.pow (). Myślę, że lubię utrzymywać rzeczy SUCHE.
To wszystko składa się na całość. Zastąp Math.round () przez Math.ceil (), aby zaokrąglić w górę zamiast zaokrąglać, czego chciał OP.
źródło
ta funkcja ogranicza liczbę dziesiętną bez okrągłej liczby
źródło
Używam odpowiedzi @AndrewMarshall przez długi czas, ale znalazłem kilka skrajnych przypadków. Następujące testy nie przechodzą:
Oto, czego teraz używam, aby zaokrąglenie zachowywało się poprawnie:
Źródło: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
źródło
roundUp(37.760000000000005, 4)
powinno być37.7601
iroundUp(5.83333333, 4)
powinno być5.8334
. Te dwa (i twoje pierwsze) wszystkie odnoszą się do podanego przeze mnie fn.parseInt zawsze zaokrągla w dół, więc .....
do parseInt () + 1
źródło