Bedingung in einer Berechnung?

cetrik

Grünschnabel
Hallo liebe Foren-Mitglieder,

ich bin kein Experte was Programierung betrifft, habe es aber geschafft mir einen Fahrpreisrechner zu basteln, der soweit auch sehr gut funktioniert.

Hier sehr ihr den Code:
Javascript:
<script language="JavaScript" type="text/javascript" />
<!--
function einblenden(div) {
 with(document.getElementById(div).style){
   if(display=="none"){
     display="inline";
   }
   else{
     display="none";
   }
 }
}
//-->
</script>

<div align="left">
<script type="text/javascript">
<!--
function rechnen()
{
grundpreis=3.0;
kilometerpreis=2.0;
km=String(document.form.km.value).replace(",", ".");
var Wert = km*kilometerpreis+grundpreis;
document.form.preis.value=String(Wert.toFixed(2)).replace(".", ",")+' €';
}
//-->
</script>

<form name="form">
Kilometer: &nbsp;&nbsp; <input type="Text" class="kilometer" name="km" value=" " size="15" maxlength=""><br>
<br>
<input type="Button" name="go" value="Fahrpreis berechnen" onClick="rechnen()"> <br>
<br>

Fahrpreis:&nbsp;&nbsp;<input type="Text" class="preis" border="none" name="preis" readonly value=" " size="15" maxlength="" readonly>
</form>

Was ich leider nicht hinbekommen, dass ich einen Mindestfahrpreis (Mindestpreis bspw. 10 EUR) errechne bzw. ausgeben lasse.
Mit Excel wäre das kein Problem und wenn ich die JV-Anleitungen richtig gelesen habe funktioniert es bei JS ähnlich. In etwa so:

if {Ergebnis < 10} else {normale Berechnung}

Leider bekomme ich es nicht hin, weil ich nicht raus finden kann wo und wie die Bedingung einzubauen ist.

Daher meine Bitte an das Forum, hat jemand eine Idee wie ich das lösen kann?

Vielen Dank im Voraus.

VG Cetrik
 
Hi und Willkommen bei tutorials.de,

Zuerst zwei allgemeine Sachen zum Code:
Die erste Zeile
Code:
<script language="JavaScript" type="text/javascript" />
hat am Schluss ein / zu viel. So geschrieben bedeutet das, dass der script-Block an der Stelle schon wieder aus wäre, und nicht erst nach der Funktion einblenden.

Und wenn du in Funktionen zB. grundpreis=3.0; schreibst machst du damit eine globale Variable, die auch außerhalb der Funktion bzw. in allen anderen Funktionen vorhanden ist. Normalerweise sollte man sowas vermeiden (mehr Gelegenheiten, Fehler zu machen, und weniger Gelegenheiten, einmal geschriebenen COde wo anders weiterzuverwenden), vor allem wenn man die Variablen sowieso nur in einer Funktion verwendet. Nicht-global kann man einfach mit "var" machen, also var grundpreis=3.0;
Schaut dann bisher so aus:
Javascript:
function rechnen()
{
	var grundpreis = 3.0;
	var kilometerpreis = 2.0;
	var km = String(document.form.km.value).replace(",", ".");
	var Wert = km * kilometerpreis + grundpreis;
	document.form.preis.value = String(Wert.toFixed(2)).replace(".", ",") + ' €';
}

Und das if für den Mindestpreis ist gar nicht so schwer und eig. selbsterklärend,
deshalb einfach mal den fertigen Code:
Javascript:
function rechnen()
{
	var grundpreis = 3.0;
	var kilometerpreis = 2.0;
	var km = String(document.form.km.value).replace(",", ".");
	var Wert = km * kilometerpreis + grundpreis;

	var mindestpreis = 10;
	if(Wert < mindestpreis)
	{
		Wert = mindestpreis;
	}

	document.form.preis.value = String(Wert.toFixed(2)).replace(".", ",") + ' €';
}
Die {} beim if kann man in dem Fall auch weglassen, weil nur eine Anweisung drin ist. Mit ists evt. besser lesbar.
Und statt eine eigene Variable für den Mindestpreis zu machen könnte man
natürlich auch einfach 10 ins If reinschreiben, aber da bei dir alles schön in Variablen gepackt ist...
 
Man könnte auch einfach Math.max() nutzen:
Javascript:
var GRUND_PREIS = 10;

// In deiner Funktion
var value = Math.max(GRUND_PREIS, errechneterWert);
 
Hallo sheel,

ich bin platt. Vor alle auch weil du so schnell geantwortet hast. Danke für dein Hilfsbereitschaft.
Der Code funktioniert perfekt und das schöne daran ist, dass ich es sogar verstehe. :)

An die Struktur muss ich mich noch gewöhnen, bzw. werde mir das angewöhnen.

Ganz herzlichen Dank.

ComFreek dir auch.

VG Cetrik
 
Sagt mal, wo ist den dieser Button um den Thread als erledigt markieren zu können?
Auf dem Screenshot in der Hilfe sieht das irgendwie anderes aus.
Danke im Voraus.
 
Eigentlich wäre der oben zwischen Titel und erstem Beitrag, nur mehr rechts,
aber vermutlich siehst du den aufgrund eines Softwareproblems hier nicht.

Mach dir da keine Sorgen drum, keiner beschwert sich wenn du es nicht selber
als erledigt markierst. (wenn wir Mods was Erledigtes sehen machen wir das auch)

Nur...wo gibts einen Screenshot dazu in welcher Hilfe? :eek:
 
Sagt mal, wo ist den dieser Button um den Thread als erledigt markieren zu können?
Auf dem Screenshot in der Hilfe sieht das irgendwie anderes aus.
Nur...wo gibts einen Screenshot dazu in welcher Hilfe? :eek:
Den hab ich eben auch vergeblich in der hiesigen Hilfe gesucht :D
Eigentlich wäre der oben zwischen Titel und erstem Beitrag, nur mehr rechts,
aber vermutlich siehst du den aufgrund eines Softwareproblems hier nicht.

[...](wenn wir Mods was Erledigtes sehen machen wir das auch)
Vermutlich hast du zwischen den beiden Beiträgen (#4 & #5) den Haken gesetzt, denn das ist der Status des Themas, womit der Link ("Markieren als Erledigt") verschwindet :)
[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück