| Autor | Zpráva | ||
|---|---|---|---|
| jozef.dinda Profil |
#1 · Zasláno: 20. 1. 2013, 21:34:25
Ako napísať kód pre súčet premennej x a premennej y. Matematický operátor + spojí čísla. Potrebujem ich súčet. Kód:
<!DOCTYPE html>
<head>
<title>matematicke operacie 2</title>
<script language="JavaScript"><!--
function delenie() {
var t1 = document.getElementById("t1");
var t2 = document.getElementById("t2");
var t3 = document.getElementById("t3");
var t4 = document.getElementById("t4");
var t5 = document.getElementById("t5");
var t6 = document.getElementById("t6");
var x = t1.value;
var y = t2.value;
var z = x / y;
var zsucin = x * y;
t4.value = zsucin;
var zsucet = x + y;
t5.value = zsucet;
var zrozdiel = x - y;
t6.value = zrozdiel;
if (isFinite(z)) {t3.value = z;} else {t3.value = "chyba";}}
</script>
</head>
<body>
<p>
x:<input type="text" id="t1" name="t1"/>
y:<input type="text" id="t2" name="t2"/>
<input type="button" value="vypočítať" onclick="delenie();"/>
</p>
t3=x/y<p><input type="text" id="t3" name="t3" readonly="readonly"/></p>
t4=x*y<p><input type="text" id="t4" name="t4" readonly="readonly"/></p>
t5 = xy - spojí reťazce!!!!! =<p><input type="text" id="t5" name="t5" readonly="readonly"/></p>
t6=x-y <p><input type="text" id="t6" name="t6" readonly="readonly"/></p>
</body>
</html>Ak za x dám napr. 8 a za y číslo 2 vypíše správne podiel 4, súčin 16, namiesto súčtu spojí do "reťazca" 82 a správne vypočíta rozdiel 6. Kde mám chybu? |
||
| DarkMeni Profil |
#2 · Zasláno: 20. 1. 2013, 21:50:18
Jak říkáš, spojí to řetězce. Jestli to chceš sečíst, tak hodnoty z formulářových polí, které získáš metodou getElementById (jako řetězec), přetypuj na číslo přes parseInt nebo parseFloat jestli tam mohou být i desetinná čísla (šla by použít i knihovna Math, ale to je zbytečný).
Třeba změň řádek 12 a 13: var x = parseInt(t1.value, 10), y = parseInt(t2.value, 10); |
||
| margin Profil * |
#3 · Zasláno: 20. 1. 2013, 21:53:16
Časté potíže, zajímavosti a poučné debaty » Součet čísel versus součet řetězců
Probírá se tam příčina a jsou tam i různá řešení. |
||
| jozef.dinda Profil |
DarkMeni:
Ďakujem DarkMeni, počíta to. |
||
| DarkMeni Profil |
#5 · Zasláno: 20. 1. 2013, 22:07:02
Vlastně, jak poslal margin ten odkaz, tak možná by bylo jedodušší kdybys to třeba vynásobil 1 nebo přičetl kladnou hodnotu (zápis by byl kratší a možná by se to vyhodnotilo o nějakou mikrovteřinu rychleji)
var x = +t1.value; //nebo var x = t1.value * 1 |
||
| jozef.dinda Profil |
#6 · Zasláno: 20. 1. 2013, 22:19:28
DarkMeni:
OK. Super. |
||
|
Časová prodleva: 14 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0