Czytam i czytam Stackoverflow i nie mogę znaleźć rozsądnie działającego rozwiązania. W jaki sposób na chwilę obecną w Angularze 6 można zaokrąglić liczbę w górę do dwóch miejsc po przecinku?
baroo napisał(a):
Czytam i czytam Stackoverflow i nie mogę znaleźć rozsądnie działającego rozwiązania. W jaki sposób na chwilę obecną w Angularze 6 można zaokrąglić liczbę w górę do dwóch miejsc po przecinku?
A co to za różnica czy w Angular, React czy jQuery.
Wszystko to jest javascript. Jeśli szukasz w google rzeczy typu "Angular 6 zaokrąglanie liczb", to nic dziwnego że nie możesz znaleźć.
Zaokrąglenie w górę do dwóch miejsc po przecinku:
function roundUp(num) {
return Math.ceil(num * 100) / 100;
}
Po prostu zacząłem przeglądać https://stackoverflow.com/questions/11832914/round-to-at-most-2-decimal-places-only-if-necessary i tam prawie każde rozwiązanie ktoś krytykuje za jakieś przypadki, gdzie ono nie działa.
Przypomniało mi się:
baroo napisał(a):
Po prostu zacząłem przeglądać https://stackoverflow.com/questions/11832914/round-to-at-most-2-decimal-places-only-if-necessary i tam prawie każde rozwiązanie ktoś krytykuje za jakieś przypadki, gdzie ono nie działa.
1.005 * 100 = 100.49999999999999 - dobre, czego to się człowiek na starość nie dowie :) Ale podobne narowy potrafiły mieć i stare kalkulatory.
Moja propozycja:
- konwertuj liczbę na stringa,
- pokrój na dwa podstringi na kropce A i B
- z drugiego podstringa zrób dwa kolejne, biorąc dwie pierwsze liczby dla B1 oraz liczbę trzecią dla B2
- konwertuj B1 i B2 ponownie na liczby,
- przeanalizuj wartość B2, if(B2>=5) B1++;
- konwertuj B1 do stringa,
- sklej A + "." + B1,
- konwertuj wynik do postaci liczbowej.