![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Hej,
właśnie poznaje javascript i mam taki problem ten kod, wyświetli mi ładnie liczby: CODE function updateOrder() { const TAXRATE = 0.07; const DONUTPRICE = 1.10; var numCakeDonuts = document.getElementById("cakedonuts").value; var numGlazedDonuts = document.getElementById("glazeddonuts").value; var subTotal = (numCakeDonuts + numGlazedDonuts) * DONUTPRICE; var tax = subTotal * TAXRATE; var total = subTotal + tax; document.getElementById("subtotal").value = subTotal.toFixed(2) + " PLN"; document.getElementById("tax").value = tax.toFixed(2) + " PLN"; document.getElementById("total").value = total.toFixed(2) + " PLN"; } <form name="orderform" action="donuts.php" method="POST"> <div class="field"> Personalia: <input type="text" id="name" name="name" value="" /> </div> <div class="field"> Liczba pączków z nadzieniem: <input type="text" id="cakedonuts" name="cakedonuts" value="" onchange="updateOrder();" /> </div> <div class="field"> Liczba pączków z lukrem: <input type="text" id="glazeddonuts" name="glazeddonuts" value="" onchange="updateOrder();" /> </div> <div class="field"> Za ile minut odbiór: <input type="text" id="pickupminutes" name="pickupminutes" value="" /> </div> <div class="field"> Suma częściowa: <input type="text" id="subtotal" name="subtotal" value="" readonly="readonly" /> </div> <div class="field"> Podatek: <input type="text" id="tax" name="tax" value="" readonly="readonly" /> </div> <div class="field"> Wartość sumaryczna: <input type="text" id="total" name="total" value="" readonly="readonly" /> </div> <div class="field"> <input type="button" value="Złóż zamówienie" onclick="placeOrder(this.form);" /> </div> </form> Natomiast ten kod przy dodawaniu zrobi konkatencje. Nie wiem dlaczego? Mogę dodać funkcję "parseFloat" która załatwi sprawę ale nie wiem dlaczego robi tą konkatencje przy dodawaniu?: CODE function get() { const x = 1; var a = document.getElementById("liczba1").value; var b = document.getElementById("liczba2").value; var dodawanie =a+b * x; var mnozenie =a*b * x; document.getElementById("dodawanie").value = dodawanie.toFixed(2) + " PLN"; document.getElementById("mnozenie").value = mnozenie + " PLN"; } <form name="liczby"> Liczba a:<input type="text" id="liczba1" name="liczba1" value="" onchange="get()" /> <br /> Liczba b:<input type="text" id="liczba2" name="liczba2" value="" onchange="get()" /> <br /> Wynik +<input type="text" id="dodawanie" name="dodawanie" value="" readonly="readonly" /> <br /> Wynik *<input type="text" id="mnozenie" name="mnozenie" value="" readonly="readonly" /> <br /> <input type="submit" value="click me!" /> </form> Ten post edytował cykcykacz 20.01.2013, 20:13:38 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Bo z pola pobierasz stringa więc musisz go na liczbę przerobić
parseInt parseFloat -------------------- 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/ |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
No tak ale dlaczego w pierwszym kodzie idzie to prawidło a tam nie ma?
parseInt parseFloat Ten post edytował cykcykacz 20.01.2013, 20:21:50 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A zmień stałą z int na floata.
-------------------- 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/ |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
W pierwszym kodzie nie jest prawidłowo. Dodawanie odbywa się źle(1). Dopiero drugie dodawanie(2) działa poprawnie, gdyż wtedy otrzymujemy już liczby.
1. (numCakeDonuts + numGlazedDonuts) * DONUTPRICE; 2. subTotal + tax Gdy mnożymy liczbę z stringiem wynik automatycznie jest konwertowany na liczbę. --edit-- Pobaw się z type of i alert. Posprawdzaj co kiedy jest liczbą, string-iem. Wtedy zapamiętasz na całe życie:) Ten post edytował kamil4u 20.01.2013, 20:35:32 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:19 |