Mittelwert und Abrunden
Cora_09
- javascript
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>
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://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.
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)
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.
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.
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
Vielen Dank Hopsel !
Vielen Dank Hopsel !
Eher nicht :)
@@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'
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
@@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'
Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!
42!
mfg Beat
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?
Hi,
Warum kann nicht einfach mal jemand ne einfache Lösung schreiben?!
Weil heutzutage auch Frauen was lernen dürfen.
MfG ChrisB
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
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)