Strona 1 z 1

Zaokrąglenie liczb w JavacSript

PostNapisane: 15 maja 2003, o 16:13
przez wirtek_:o)
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)

PostNapisane: 15 maja 2003, o 20:20
przez Wydra707
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

PostNapisane: 18 maja 2003, o 18:18
przez wirtek_:o)
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 :-)

PostNapisane: 19 maja 2003, o 18:55
przez Wydra707

PostNapisane: 19 maja 2003, o 20:12
przez wirtek_:o)

PostNapisane: 19 maja 2003, o 21:53
przez Wydra707
Pełna kompromitacja (znaczy się moja...). Oczywiście, że masz rację :-) Zwracam honor.

Paweł Rajewski