Dlaczego program "nie widzi" liczb poniżej 1,00?

0
<html>
<head>
<body>
<table id="table">
<form action="self.php" method="post" >
<tr>
<td id="name">Warstwa</td>
<td id="name">λ</td>
<td id="name">Podaj grubość warstwy [m]</td>
<td id="name">U</td>
</tr>
 
<tr>
<td>Tynk wewnętrzny - CEMENTOWY</td>
<td id="setValue1">1,00</td>
<td><input type= "text" name="okno_tekstowe" value= "0" onChange="obsluga_zdarzenia(this, 'wynik1', 'setValue1')"></td>
<td id="wynik1">0</td>
</tr>
 
<tr>
<td>Warstwa konstrukcyjna - BETON KOMÓRKOWY 400</td>
<td id="setValue2">0,015</td>
<td><input type= "text" name="okno_tekstowe" value = "0" onChange="obsluga_zdarzenia(this, 'wynik2', 'setValue2')"></td>
<td id="wynik2">0</td>
</tr>
<tr>
 
<td>Tynk zewnętrzny - CEMENTOWO WAPIENNY</td>
<td id="setValue3">0,82</td>
<td><input type= "text" nam ="okno_tekstowe" value = "0" onChange="obsluga_zdarzenia(this, 'wynik3', 'setValue3')"></td>
<td id="wynik3">0</td>
</tr>
 

<div id="all"></div>
</form>
</table>
</body>
</html>
<
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script LANGUAGE = JavaScript>
<!-- Ukrycie przed przeglądarkami nieobsługującymi JavaScript
function obsluga_zdarzenia(obj, id, mSetValue){
	if (isNaN (obj.value)){
		document.getElementById(id).innerHTML = 'Blad';
		obj.focus();
		obj.select();
	} else { 
		var mSV = document.getElementById(mSetValue).innerHTML; 
		document.getElementById(id).innerHTML = parseInt(mSV) * obj.value; 
	}
	var a = document.getElementById('wynik1').innerHTML;
	var b = document.getElementById('wynik2').innerHTML;
	var c = document.getElementById('wynik3').innerHTML;
	document.getElementById('all').innerHTML =  parseInt(a) + parseInt(b) + parseInt(c);
}

Dzień dobry,
Mam pewien problem z programem. W przypadku 1,00</td> oraz wszystkich liczb powyżej 1,00 nie ma problemu. Jednak, gdy mam 0,015</td> oraz każdą inną liczbę poniżej 1,00 nie liczy się dana wartość.
W czym jest problem?
W załączniku dodaję wynik tego programu

0

Jeżeli podajesz te liczby z separatorem dziesiętnym w postaci przecinka, to nie będzie ich czytał poprawnie.
Chyba we wszystkich językach przyjęta jest notacja z kropką dziesiętną typu 0.15.

0
Freja Draco napisał(a):

Jeżeli podajesz te liczby z separatorem dziesiętnym w postaci przecinka, to nie będzie ich czytał poprawnie.
Chyba we wszystkich językach przyjęta jest notacja z kropką dziesiętną typu 0.15.

Jest tam fragment kodu, który zamienia "," na ".".
Jednak nawet gdy liczby te zapiszę z kropką, to nie robi to różnicy. Nadal liczy tylko gdy λ jest powyżej 1.00

W załącziku dodaje kolejny błąd.
Dlaczego program źle liczy?

1

Może wystarczy zamienić parseInt na parseFloat ?

0

Aż wstyd, że zrobiłam taki błąd. Dziękuję bardzo za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1