Switch to full style
Forum dyskusyjne poświęcone zagadnieniom związanym z językami JavaScript, VBScript i podobnym
Odpowiedz

Zaokrąglenie liczb w JavacSript

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)

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

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 :-)

19 maja 2003, o 18:55

19 maja 2003, o 20:12

19 maja 2003, o 21:53

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

Paweł Rajewski
Odpowiedz