Cora_09: Mittelwert und Abrunden

Ich möchte gern eine Excel Formel in Javascript übertragen, weiss aber nicht wie.

=ABRUNDEN((MITTELWERT(D7:E7)*0,1);0)

3 Formularfelder und ne einfache Addition bekomme ich ja noch hin, aber dann hört es bei mir leider auf.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Rechnen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function berechnen() {
 var b1,b2,z1,z2,erg;
 b1=document.frm.Z1.value;
 b2=document.frm.Z2.value;
 z1=parseFloat(b1);
 z2=parseFloat(b2);
 erg=z1+z2;
 document.frm.Erg.value=erg;
}
</script>
</head>
<body>
<form action="" name="frm">
<input type="Text" name="Z1" value="1"> +
<input type="Text" name="Z2" value="1"> =
<input type="Text" name="Erg" value="2"><br>
<button type="button" onclick="berechnen()">Rechnen</button>
</form>
</body>
</html>

    1. Om nah hoo pez nyeetz, JürgenB!

      [ref:self812;javascript/objekte/math.htm@title=Runden]

      laut Beschreibung könnte das ggf. zu wenig sein.

      #1# liefert Ganzzahl #2# es soll abgerundet werden

      Matthias

      --
      http://www.billiger-im-urlaub.de/kreis_sw.gif
      1. http://de.selfhtml.org/javascript/objekte/math.htm@title=Runden

        laut Beschreibung könnte das ggf. zu wenig sein.

        Mein Gott, dann muss man halt das Komma etwas herumrutschen - das geht im Dezimalsystem durch zB. die Multiplikation mit × 10^x bzw. ÷ 10^x.

        1. Ok, da ich nicht so der Algebra Freak bin, frag ich einfach.

          Wie bekomme ich das Ergebnis immer ohne Kommastellen abgerundet?

          erg=Math.round((z1+z2)/2)*0.1)

          1. Ok, da ich nicht so der Algebra Freak bin, frag ich einfach.

            Das macht nichts - du bauchst keine Algebra, du brauchst Arithmetik :)

            Wie bekomme ich das Ergebnis immer ohne Kommastellen abgerundet?

            Ich versteh' den Satz nicht, folgend also eine Vermutung:

            Wenn du das Komma vorher um eine Stelle mittels *0.1 verschiebst, musst du es auch anschließend wieder zurückverschieben.

            erg=Math.round((z1+z2)/2)*0.1)

            round() rundet nicht ab, es rundet kaufmännisch. Siehe die bereits verlinkte Dokumentationsseite.

            1. Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!

              Nun dann versuche ich mal zu erklären, was ich genau will:

              Ich will 10% des Mittelwertes aus Eingabefeld 1 und Eingabefeld 2, abgerundet ohne Kommastellen.

              1. Hi Cora_09!

                Ich will 10% des Mittelwertes aus Eingabefeld 1 und Eingabefeld 2, abgerundet ohne Kommastellen.

                Math.round((mittelwert * 0.1) - 0.5)

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                1. Vielen Dank Hopsel !

                  1. Vielen Dank Hopsel !

                    Eher nicht :)

                2. @@Hopsel:

                  nuqneH

                  Math.round((mittelwert * 0.1) - 0.5)

                  Das ist unsinnig. Für das Abrunden auf die nächst kleinere Ganzzahl gibt es eine eigene Methode: floor(). Sagte suit doch.

                  Qapla'

                  --
                  Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                  (Mark Twain)
                  1. Hi Gunnar!

                    Das ist unsinnig.

                    Aber korrekt!
                    Ich finde, ich habe mir die Lösung selbst gut hergelitten. :-)

                    Für das Abrunden auf die nächst kleinere Ganzzahl gibt es eine eigene Methode: floor().

                    Joah, richig! Beim Antworten bin ich oft zu hektisch und betriebsblind.

                    MfG H☼psel

                    --
                    "It's amazing I won. I was running against peace, prosperity, and incumbency."
                    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                    1. @@Hopsel:

                      nuqneH

                      Ich finde, ich habe mir die Lösung selbst gut hergelitten. :-)

                      Ich verstehe dein Leiden. ;-)

                      Mich sollte nicht wundern, wenn Math.round() intern derart arbeitet:
                      Math.round(x) = function (x) { return Math.floor(x + 0.5); }

                      Der Aurfuf von Math.round(x - 0.5) wäre also ein Aufruf von Math.floor(x - 0.5 + 0.5) – zwei unnötige Additionen!

                      Nicht, dass deswegen der Browser einfriert oder die Hölle zu … aber wenn es schon eine Methode gibt, die genau das Gewünschte tut, dann sollte man sie auch nutzen.

                      Qapla'

                      --
                      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                      (Mark Twain)
              2. Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!

                42!

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
              3. Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!

                Weil das hier nicht das GETHTML-Forum ist.

                Ich will 10% des Mittelwertes aus Eingabefeld 1 und Eingabefeld 2, abgerundet ohne Kommastellen.

                Das mit den 10% ist neu.

                Teile dein Problem in Unterprobleme auf.

                Du willst den Mittelwert von zwei Werten bestimmen.
                Du willst einen Wert abrunden.
                Du willst 10 Prozent eines Wertes ermitteln.

                Wo ist genau dein Problem?

              4. Hi,

                Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!

                Weil heutzutage auch Frauen was lernen dürfen.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        2. Om nah hoo pez nyeetz, suit!

          Mein Gott, dann muss man halt das Komma etwas herumrutschen - das geht im Dezimalsystem durch zB. die Multiplikation mit × 10^x bzw. ÷ 10^x.

          schon klar.

          Matthias

          --
          http://www.billiger-im-urlaub.de/kreis_sw.gif
  1. Ok, da ich nicht so der Algebra Freak bin, frag ich einfach.

    Wie bekomme ich das Ergebnis immer ohne Kommastellen abgerundet?

    erg=Math.round((z1+z2)/2)*0.1)