Nasze strony wykorzystują pliki cookies. Używamy cookies i podobnych m.in. w celach reklamowych i statystycznych oraz w celu dostosowania serwisów do potrzeb użytkowników. Mogą też stosować je nasi reklamodawcy, firmy badawcze oraz dostawcy aplikacji. W przeglądarce można zmienić ustawienia dotyczące cookies. Więcej informacji. Jeśli nie wyrażasz zgody, opuść tę stronę.

Zaokrąglenie liczb w JavacSript

Forum dyskusyjne poświęcone zagadnieniom związanym z językami JavaScript, VBScript i podobnym

Moderator: Grupa pościgowa ;-)

Zaokrąglenie liczb w JavacSript

Postprzez wirtek_:o) » 15 maja 2003, o 16:13

Witam :o)

WYkonałem formularz, w którym jest są dwa pola Input typ TEXT.

W jednym użytkownik wpisuje ilość sztuk tego, co chce kupić, a w drugim oknie automatycznie otrzymuje rezultat mnożenia ilość * cena.

Niestety czasem z mnożenia wychodzą liczby, które mają więcej niż 2 miejsca po przecinku.

Jak ograniczyć te liczby właśnie do dwóch miejsc po przecinku?

Pozdrawiam serdecznie :o)
wirtek :o)
wirtek_:o)
Jeszcze się uczę
Jeszcze się uczę
 
Posty: 21
Dołączył(a): 11 stycznia 2003, o 14:10

Postprzez Wydra707 » 15 maja 2003, o 20:20

Jeśli cenę masz podaną z dokładnością do dwóch miejsc po przecinku, to wynik mnożenia jej przez liczbę całkowitą raczej nie powinien mieć większej ilości miejsc... (możesz podać jakiś przykład?). Jeśli jednak tak się dzieje, to masz dwa rozwiązania.

1. Operować na liczbach całkowitych czyli zapisywać (wewnętrznie) ceny w groszach. Dopiero wynik końcowy do wyświetlenia dzielisz przez 100.

2. Zaokrąglić, z tym, że trzeba się zastanowić jak. Są trzy możliwości: w górę, w dół albo do najbliższej liczby (tj. raz w górę raz w dół, zależnie gdzie bliżej). Zakładając, że x=12.3456:

- w górę:
x=(Math.ceil(x*100))/100; (wynik: 12.35)

- w dół:
x=(Math.floor(x*100))/100; (wynik: 12.34)

- do najbliższej:
x=(Math.round(x*100))/100; (wynik: 12.35)

Pozdrawiam
Paweł Rajewski
Wydra707
Znawca tematu
Znawca tematu
 
Posty: 482
Dołączył(a): 1 października 2002, o 19:21

Postprzez wirtek_:o) » 18 maja 2003, o 18:18

Wydra => dziękuję za podpowiedź. Naprowadziłeś mnie na właściwy trop :o)

A czasem wychodzą liczby z wieloma miejscami po przecinku, np. w momencie, gdy kupujesz 3,5 kg czegoś, co kosztuje 3,33 zł.

To tak z głowy przykład :-)
wirtek_:o)
Jeszcze się uczę
Jeszcze się uczę
 
Posty: 21
Dołączył(a): 11 stycznia 2003, o 14:10

Postprzez Wydra707 » 19 maja 2003, o 18:55

Wydra707
Znawca tematu
Znawca tematu
 
Posty: 482
Dołączył(a): 1 października 2002, o 19:21

Postprzez wirtek_:o) » 19 maja 2003, o 20:12

wirtek_:o)
Jeszcze się uczę
Jeszcze się uczę
 
Posty: 21
Dołączył(a): 11 stycznia 2003, o 14:10

Postprzez Wydra707 » 19 maja 2003, o 21:53

Pełna kompromitacja (znaczy się moja...). Oczywiście, że masz rację :-) Zwracam honor.

Paweł Rajewski
Wydra707
Znawca tematu
Znawca tematu
 
Posty: 482
Dołączył(a): 1 października 2002, o 19:21


Powrót do Języki JavaScript i VBScript

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników

cron