Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Zaokrąglanie wyniku, Zaokrąglanie wyniku w JavaScript
pzebzda
post 5.09.2010, 18:07:13
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Witam.

Wstawiam kod mojego skryptu: (działa poprawnie, zaokrągla podane wartości z przecinkami dając wynik w liczbach całkowitych)

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <head>
  7. <script type="text/javascript">
  8.  
  9. function licz(aform){
  10.  
  11. aform.liczba.value = parseFloat(aform.ilosc.value) +
  12.  
  13. parseFloat(aform.cena.value);
  14. }
  15. function zaokraglenie(liczba) {
  16. liczba = liczba * 100;
  17. var wynik = Math.round(liczba)/100;
  18. window(wynik);
  19. }
  20. </script>
  21. </head>
  22.  
  23. <body>
  24.  
  25. <form action="" name="xxx">
  26. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);zaokraglenie(liczba.value);">
  27. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);zaokraglenie(liczba.value);">
  28. <INPUT TYPE="text" NAME="liczba">
  29.  
  30. </form>
  31.  
  32. </body>
  33.  
  34. </html>


Chcialbym aby skrypt obliczał mi nie tylko ilosc*cena=liczba ale i ilosc*cena*0.007=liczba

I tu już niestety wyniku mi nie zaokrągla.
0.007 to taki mój współczynnik.

Chcialbym otrzymywać zaokrąglaną wartość do całości w górę.

Np. więc 1,2=2

Proszę o pomoc. Ktoś ma pomysł jak to naprawić?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
bastard13
post 5.09.2010, 18:38:05
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Rozumiem, że w przypadku ilosc*cena+0.007 ma się zaokrągląc w górę w każdym przypadku (1.001 => 2) ? Jeżeli o to chodzi, to użyj funkcji Math.ceil().


--------------------
Go to the top of the page
+Quote Post
pzebzda
post 5.09.2010, 20:08:02
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Cześć. Zamieniłem funkcje.

Podaję kod:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <head>
  7. <script type="text/javascript">
  8.  
  9. function licz(aform){
  10.  
  11. aform.liczba.value = parseFloat(aform.ilosc.value) * parseFloat(aform.cena.value) * 0.007;
  12. }
  13. function zaokraglenie(liczba) {
  14. liczba = liczba * 100;
  15. var wynik = Math.ceil(liczba)/100;
  16. window(wynik);
  17. }
  18. </script>
  19. </head>
  20.  
  21. <body>
  22.  
  23. <form action="" name="xxx">
  24. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);zaokraglenie(liczba.value);">*
  25. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);zaokraglenie(liczba.value);">=
  26. <INPUT TYPE="text" NAME="liczba">
  27.  
  28. </form>
  29.  
  30. </body>
  31.  
  32. </html>


Niestety otrzymuję wynik w postaci:
(obrazek)



Coś robię nie tak... czy mógłbyś ewentualnie poprawić?
Go to the top of the page
+Quote Post
skowron-line
post 5.09.2010, 21:04:12
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


A po co Ci tu
[JAVASCRIPT] pobierz, plaintext
  1. var wynik = Math.ceil(liczba)/100;
[JAVASCRIPT] pobierz, plaintext

dzielenie przez 100 questionmark.gif


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
wiiir
post 6.09.2010, 07:18:01
Post #5





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


Cytat(pzebzda @ 5.09.2010, 21:08:02 ) *
  1. liczba = liczba * 100;
  2. var wynik = Math.ceil(liczba)/100;

przeciez liczba dalej ma taka sama wartosc, poza tym jesli chcesz to zaokraglic musisz dac calosc w nawiasie, czyli:
  1. var wynik = Math.ceil(liczba/100);
Go to the top of the page
+Quote Post
pzebzda
post 6.09.2010, 13:58:53
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Witam. Niestety koledzy dalej nie zaokrągla sad.gif

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <script type="text/javascript">
  7.  
  8. function licz(aform){
  9.  
  10. aform.liczba.value = parseFloat(aform.ilosc.value) * parseFloat(aform.cena.value) * 0.007;
  11. }
  12. function zaokraglenie(liczba) {
  13. liczba = liczba;
  14. var wynik = Math.ceil(liczba);
  15. window(wynik);
  16. }
  17. </head>
  18.  
  19.  
  20. <form action="" name="xxx">
  21. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);zaokraglenie(liczba.value);">*
  22. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);zaokraglenie(liczba.value);">=
  23. <INPUT TYPE="text" NAME="liczba">
  24.  
  25. </form>
  26.  
  27. </body>
  28.  
  29. </html>
Go to the top of the page
+Quote Post
wiiir
post 6.09.2010, 14:16:23
Post #7





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


Cytat(pzebzda @ 6.09.2010, 14:58:53 ) *
Witam. Niestety koledzy dalej nie zaokrągla sad.gif

  1. window(wynik);

a co to jest lol..... zaokraglanie dziala tylko ty nie pokazujesz wyniku


i wogole po co ci to
  1. liczba = liczba;


tutaj masz calosc
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <script type="text/javascript">
  7.  
  8. function licz(aform){
  9. var liczba = parseFloat(aform.ilosc.value) * parseFloat(aform.cena.value) * 0.007;
  10. aform.liczba.value = liczba;
  11. zaokraglenie(aform,liczba);
  12. }
  13. function zaokraglenie(aform,liczba) {
  14.  
  15. var wynik = Math.ceil(liczba);
  16. aform.liczba.value = wynik;
  17. }
  18. </head>
  19.  
  20.  
  21. <form action="" name="xxx">
  22. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);">*
  23. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);">=
  24. <INPUT TYPE="text" NAME="liczba">
  25.  
  26. </form>
  27.  
  28. </body>
  29.  
  30. </html>


Ten post edytował wiiir 6.09.2010, 14:16:50
Go to the top of the page
+Quote Post
pzebzda
post 6.09.2010, 17:00:44
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


wiiir - dziękuję CI baardzo! winksmiley.jpg pozostałym uczestnikom tematu również smile.gif

Bardzo mi sie to przyda... zapewne nie tylko mi winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:28