Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Zaokrąglenie w górę.
Forum PHP.pl > Forum > Przedszkole
tzm
To mam:

771.25
9017.875
112965.0625

A to potrzebuję:

771.25
9017.88
112965.06


Sephirus
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var liczba = 9017.875;
  3.  
  4. liczba = (Math.ceil(liczba*100)/100).toFixed(2);
  5.  
  6. console.log(liczba); // "9017.86"
  7.  
  8. // Zwraca jako string - jeśli dalej potrzebujesz liczby to dodaj:
  9.  
  10. liczba = parseFloat(liczba);
  11.  
  12. console.log(liczba); // 9017.86
  13.  
[JAVASCRIPT] pobierz, plaintext


HTH wink.gif

EDIT: dodałem Math.ceil - kapnąłem się dopiero, że chodzi o zaokrąglanie w gorę wink.gif
tzm
@Sephirus, no super super ale wyniki są zupełnie inne niż te które podałem Sephirus, nie było by problemu z tym gdyby nie fakt że to dane z macierzy która potem muszę obrócić i pomnożyć przez inną a to właśnie generuję kolosalne w wynikach błędy.


http://www.staff.amu.edu.pl/~zcht/pliki/Aproksymacja.pdf , strona 12. Chodzi o tą tabele i uzyskanie dokładnego wyniku.

@trueblue, już nawet z kolegą z pracy oglądamy o co chodzi z tym i patrz:

9017.880000000001 to wynik dla:

  1. result += parseFloat(Math.pow(data[i], pow).toFixed(2));



edit:

a żeby zabawnie było:

parseFloat(9017.875).toFixed(2) zwraca 9017.88

można zamknąć
Sephirus
No tak jak Ci pisałem w kodzie - bez parseFloat to zwraca stringa - i pisałem, że jak mimo wszystko chcesz dalej działać na liczbie to jeszcze trzeba ten parseFloat wink.gif
tzm
problem leżał w totalnie innym miejscu, wczoraj do czegoś potrzebowałem na początku skryptu zrobić parseInt więc logicznie ucinał mi liczby po przecinku co miało wpływ na końcowy wynik. no przy debugowaniu znalazłem syf
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.