rechnen mit Java

xxxomxxx

Grünschnabel
hi

ich versuche folgendes zum laufen zu bringen:
Code:
<script>
	
	function calc()
	{
		
		var a =  document.form1.a.value; // Exact HCP
		var b =  document.form1.b.value; // Slope Rating
		var c =  document.form1.c.value; // Course Rating
		var d =  72; // Par
		var s =  document.form1.s.value;
		
		
		if(a == 0)
			{alert("Bitte Exact HCP angeben!");}
		if(b == 0)
			{alert("Bitte Slope Rating angeben!");}
		if(c == 0)
			{alert("Bitte Course Rating angeben!");}
				
		else{
		var e = (a * (b / 113)) - c + d; 
		var f = java.lang.Math.round(e);
		document.getElementById("hcp").style.display = "";
		document.getElementById("hcp").innerHTML = f;
	
	if(s == 0)
			{var g = 0}
	else{		
		
		var g = 36 - java.lang.Math.round(e) - 72 + s;
				
		document.getElementById("stableford").style.display = "";
		document.getElementById("stableford").innerHTML = g;
		}	}		
			
	}
</script>

es geht darum das Golf HCP zu berechnen sowie danach die ereichten Stablford. Die werte erhaelt er via Formular, das Resultat wird wieder in den HTML Code geschrieben. Das funktioniert gut, nur die fett markeirte Stableford berechnung, die schlägt fehl

warum?

ausserdem, wenn ich für d ein wert aus der tabelle nehme bezw mit document.form1.d.value ersetze, dann geht nichts mehr... wieso?

Danke, bin ein echter newbie was java anbelangt
 
Was hast du dort vor mit "java.lang".
Javascript hat nichts mit Java zu tun.
Schreib nur Math.round(e) ...und alles wird gut :)
 
Danke, bin quereinsteiger und lerne Java, deshalb etwas verwirrung im script...aber das Problem ist das Resultat der Gleichung

var g = 36 - Math.round(e) - 72 + s;

sagen wir 36+e-72 =58 und s=10, dann spuckt er mir für g 5810 anstatt 68 raus, wieso

danke
 
Weil du vergessen hast s in eine Zahl umzuwandeln. s ist noch ein String aus dem Eingabefeld, d.h. die Variable s wird als String addiert, also ihr Wert einfach nur hinten dran gehängt. Änder mal die Zeile entsprechend:
HTML:
var s = Number(document.form1.s.value);
Gleiches solltest du zur Sicherheit mit a, b und c auch machen
 
Zuletzt bearbeitet:
danke, ich habe hier im forum noch die lösung eval() gefunden was macht eval() genau?

scheint weniger elegant zu sein
 
Eval hilft dir da nicht weiter.
Das Problem ist, das der Stringverkettungsoperator in JS derselbe ist wie der für die Addition.
Da Werte aus Formularfeldern immer vom Typ String sind, musst du sie erst in eine Zahl umwandeln(wenn du sie für eine Addition benötigst).... z.B. mit der Methode von con-f-use
 

Neue Beiträge

Zurück