Anteile berechnen

proliz0711

Grünschnabel
Meine Fähigkeiten mit Javascript sind eher bescheiden. Ich möchte folgendes Problem lösen:

Es soll ein Abrechnung mit der Berechnung der anteiligen Werte erfolgen.

1. Es wird ein Grundwert vorgegeben (z.B. 26,50 Euro)
2. Es werden bis zu 4 Namen eingegeben
3. Zu jedem Namen wird ein Wert eingegeben (das kann eine einfache Zahl oder auch ein Euro-Wert sein)
4. Anhand des Wertes (1.) und den weiteren Werten (3.) wird zu jedem Namen der Anteil errechnet, der jedem einzelnen Namen zuzuordnen ist.

Geht das überhaupt mit Javascript zu machen? Ich würde mich tierisch über Hilfe bzw. Lösung freuen.

Achim
 
So in etwa sollte es gehen:

HTML:
<script language="javascript" type="text/javascript">
function anteil() {
    ges = parseFloat(document.getElementById("gesamt").value);
    w1 = parseFloat(document.getElementById("wert1").value);
    w2 = parseFloat(document.getElementById("wert2").value);
    w3 = parseFloat(document.getElementById("wert3").value);
    w4 = parseFloat(document.getElementById("wert4").value);

    t1 = w1 / (w1 + w2 + w3 + w4);
    t2 = w2 / (w1 + w2 + w3 + w4);
    t3 = w3 / (w1 + w2 + w3 + w4);
    t4 = w4 / (w1 + w2 + w3 + w4);
    document.getElementById("erg1").innerHTML = "Prozent " + t1 + " Betrag " + (ges * t1);
    document.getElementById("erg2").innerHTML = "Prozent " + t2 + " Betrag " + (ges * t2);
    document.getElementById("erg3").innerHTML = "Prozent " + t3 + " Betrag " + (ges * t3);
    document.getElementById("erg4").innerHTML = "Prozent " + t4 + " Betrag " + (ges * t4);
}
</script>
<input type="text" name="gesamt" id="gesamt" value="100" size="20" maxlength="50" /><br />
<input type="text" name="wert1" id="wert1" value="25" size="20" maxlength="50" /><br />
<input type="text" name="wert2" id="wert2" value="25" size="20" maxlength="50" /><br />
<input type="text" name="wert3" id="wert3" value="25" size="20" maxlength="50" /><br />
<input type="text" name="wert4" id="wert4" value="25" size="20" maxlength="50" /><br />
<div id="erg1"></div><br />
<div id="erg2"></div><br />
<div id="erg3"></div><br />
<div id="erg4"></div><br />
<a href="#" onclick="anteil();">Anteile berechnen</a>
 
Hallo und DANKE für Deine Antwort.
Leider kommen ich nicht weiter, aber vielleicht kannst Du mir einfach besser helfen, wenn ich Dir/Euch die komplette Vorgabe aufschreibe. Hier ist sie noch einmal:

Meine Fähigkeiten mit Javascript sind eher bescheiden. Ich möchte ein Problem lösen, das sich auf z.B. Skatrunden bezieht, die von Zeit zu Zeit bei mir stattfinden.

Es soll ein Abrechnung mit der Berechnung der anteiligen Werte erfolgen.

1. Entweder spielen wir um einen Lottoschein (z.B. 25,60 Euro) oder um 1 Cent, 1/2 Cent, 1/4 Cent oder 1/10 Cent.

2. Es werden 3 oder 4 Namen eingegeben werden (das sind die Spielteilnehmer der Kartenrunde).

3. Zu jedem Spieler werden die erspielten Punkte eingetragen (ohne Nachkommastellen)

4. Aus den Punktedifferenzen der einzelnen Spieler untereinander und der Verrechnung mit einem festen Betrag (z.B. Lottoschein) oder mit dem vereinbarten Cent-Wert ergeben sich Beträge, die die einzelnen Spieler zahlen oder kassieren müssen/dürfen (kaufmännisch gerundet mit 2 Nachkommastellen).

Mein Problem dabei ist NICHT die Mathematik (über Excel habe ich das schon gelöst). Ich möchte ganz einfach OHNE Excel diese Abrechnungen vornehmen.

Geht das überhaupt mit Javascript zu machen? Ich würde mich tierisch über Hilfe bzw. Lösung freuen.

Danke jetzt schon:

Achim
 
Im ersten Beispiel waren doch noch einige fehler drin weil ich immer vom falschen Grundwert ausgegangen bin. Aber das hier sollte jetzt stimmen:

HTML:
<script language="javascript" type="text/javascript">
function anteil() {
    total = parseFloat(document.getElementById("gesamt").value * 1);
    w1 = parseFloat(document.getElementById("wert1").value * 1);
    w2 = parseFloat(document.getElementById("wert2").value * 1);
    w3 = parseFloat(document.getElementById("wert3").value * 1);
    w4 = parseFloat(document.getElementById("wert4").value * 1);
    ges = (w1 + w2 + w3 + w4);

    t1 = (w1 / ges) * 100;
    t2 = (w2 / ges) * 100;
    t3 = (w3 / ges) * 100;
    t4 = (w4 / ges) * 100;
    document.getElementById("erg1").innerHTML = "Prozent " + t1.toFixed(2) + " Betrag " + ((total * t1) / 100).toFixed(2);
    document.getElementById("erg2").innerHTML = "Prozent " + t2.toFixed(2) + " Betrag " + ((total * t2) / 100).toFixed(2);
    document.getElementById("erg3").innerHTML = "Prozent " + t3.toFixed(2) + " Betrag " + ((total * t3) / 100).toFixed(2);
    document.getElementById("erg4").innerHTML = "Prozent " + t4.toFixed(2) + " Betrag " + ((total * t4) / 100).toFixed(2);
}
</script>
<table>
    <tr>
        <td>Spielsumme</td>
        <td><input type="text" name="gesamt" id="gesamt" value="" size="20"/></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>Name Spieler 1</td>
        <td><input type="text" name="spieler1" id="spieler1" value="" size="20"/></td>
        <td>Anteil Spieler 1</td>
        <td><input type="text" name="wert1" id="wert1" value="" size="20"/></td>
        <td><div id="erg1"></div></td>
    </tr>
    <tr>
        <td>Name Spieler 2</td>
        <td><input type="text" name="spieler2" id="spieler2" value="" size="20"/></td>
        <td>Anteil Spieler 2</td>
        <td><input type="text" name="wert2" id="wert2" value="" size="20"/></td>
        <td><div id="erg2"></div></td>
    </tr>
    <tr>
        <td>Name Spieler 3</td>
        <td><input type="text" name="spieler3" id="spieler3" value="" size="20"/></td>
        <td>Anteil Spieler 3</td>
        <td><input type="text" name="wert3" id="wert3" value="" size="20"/></td>
        <td><div id="erg3"></div></td>
    </tr>
    <tr>
        <td>Name Spieler 4</td>
        <td><input type="text" name="spieler4" id="spieler4" value="" size="20"/></td>
        <td>Anteile Spieler 4</td>
        <td><input type="text" name="wert4" id="wert4" value="" size="20"/></td>
        <td><div id="erg4"></div></td>
    </tr>
</table>
<br />
<a href="#" onclick="anteil();">Anteile berechnen</a>
 
Zuletzt bearbeitet:
Zurück