• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zahlen auf 2 Dezimalstellen kürzen und Runden

ReneS35

Neues Mitglied
Hallo zusammen,

ich bin ganz frisch hier im Forum. Freue mich doch sehr ein solch umfangreiches Portal gefunden zu haben.

Nun mein Problem:

Ich möchte in dem beigefügten Code das Ergebnis auf 2 Dezimalstellen gekürzt haben. Noch dazu sollte das Ergebnis auch auf oder abgerundet werden.

Für Eure hilfe bedanke ich mich schon jetzt herzlichst.

Grüße aus köln

Rene

Code:
<html>
<head>
<script>
    function multipliziere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a*b;
        return(a*b)
    }
      function dividiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a/b;
        return(a/b)
    }
      function addiere(a,b){
        a = 1*a;
 
        window.f.c.value=a+b;
    }
      function subtrahiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a-b;
    }
      function prozent(a,b){          a = 1*a;
        b = 1*b;
        e = multipliziere(a,b);
        c = dividiere(e,100);
        window.f.c.value=c;
    }
</script>
</head>
<body>
    <h1>Rechner</h1>
        <form name="f">
            Zahl1:<input type="textfield" name="a"><br>
            Zahl2:<input type="textfield" name="b"><br>              
            <input type="button" value="  +  " onClick="addiere(window.f.a.value,window.f.value)">
            <input type="button" value="  -  " onClick="subtrahiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  /  " onClick="dividiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  *  " onClick="multipliziere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  %  " onClick="prozent(window.f.a.value,window.f.b.value)"><br>
            Ergebnis:              <input type="textfield" name="c">
        </form>
</body>
</html>
 
Werbung:
Hallo hier und viel erfolg noch,

der betrag gehört in den Javascript teil veil du ja hier mit js rechnest aber nur am rande.
Das als erste funktion über function multipliziere
Code:
function runden(x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}

die Zahle die schick machen möchtest musst so machen c ist deine variable
Code:
runden(parseFloat(c));

Cheffchen
 
Hallo Chefchen,

vielen Dank für Deine Hilfe.

Könntest Du mir vielleicht den Code einfügen. Bekomme das nicht hin. Was meinst Du denn mit "die Zahle die schick machen möchtest musst so machen c ist deine variable"

Füge Dir den Code nochmals bei. Würde mich echt sehr über Deine Hilfe freuen.

Danke nochmals

Code:
<html>
<head>
<script>
function runden(x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}
    function multipliziere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a*b;
        return(a*b)
    }
      function dividiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a/b;
        return(a/b)
        
    }
      function addiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a+b;
    }
      function subtrahiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a-b;
    }
      function prozent(a,b){          a = 1*a;
        b = 1*b;
        e = multipliziere(a,b);
        c = dividiere(e,100);
        window.f.c.value=c;
    }
    
</script>
</head>
<body>
    <h1>Rechner</h1>
        <form name="f">
            Zahl1:<input type="textfield" name="a"><br>
            Zahl2:<input type="textfield" name="b"><br>              
            <input type="button" value="  +  " onClick="addiere(window.f.a.value,window.f.value)">
            <input type="button" value="  -  " onClick="subtrahiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  /  " onClick="dividiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  *  " onClick="multipliziere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  %  " onClick="prozent(window.f.a.value,window.f.b.value)"><br>
            Ergebnis:              <input type="textfield" name="c">
        </form>
</body>
</html>
 
Werbung:
Code:
Number.prototype.toLocaleFormat = function (digits, language)
{
    if ("undefined" === typeof language) {
        language = (navigator.language || navigator.browserLanguage).substr(0, 2);
    }

    var t = Number.prototype.toLocaleFormat.LC_NUMBER, def;
    if ("undefined" !== typeof t[language]) {
        def = t[language];
    } else {
        def = t["en"];
    }

    var number = this.toFixed(digits),
        iSep   = number.indexOf("."),
        bd     = number.substring(iSep, 0),
        d      = number.substring(iSep + 1, number.length);
        

    for (var i = bd.length - 3; i > 0; i -= 3) {
        bd = bd.substring(i, 0) + def["thousands"] + bd.substring(i, bd.length);
    }

    return bd + def["seperator"] + d;
}
Number.prototype.toLocaleFormat.LC_NUMBER = {
    en : { seperator : ".", thousands : "," },
    de : { seperator : ",", thousands : "." }
};

alert(23324534566855.45545.toLocaleFormat(2, "de"));
 
HalloReneS35,

also in deinem code sind auch noch ein paar fehler drin z.b.

fehlt hier das "b" in window.f.value
<input type="button" value=" + " onClick="addiere(window.f.a.value,window.f.value)">
sowas passiert wenn nicht mit richten variablen arbeitest a, b, c, wenn mal ein zwei zeilen mehr code hast kommst nicht mehr klar, wieso nicht feld_a oder so das siehst im code auch einfacher.

variable c nimmst einfach ohne die vorher definiert zu haben.

eingabe a und b musst noch eine prüfung einbauen, ich habe nur eingebaut das auch zahlen mit 1,22 gehen, den js und php könne nur mit 1.22 rechenen. eigentlich könntest daraus auch eine funktin machen die nach der übergabe der felddaten die prüft ob zahl und komma gegen punkt tauscht.

Habe nur die ersten beiden funktionen etwas angepasst, die anderen beiden kannst selber machen.
HTML:
<html>
<head>
<script>
	function runden(x) {
	  var k = (Math.round(x * 100) / 100).toString();
	  k += (k.indexOf('.') == -1)? '.00' : '00';
	  return k.substring(0, k.indexOf('.') + 3);
	}

    function multipliziere(feld_a,feld_b){
        var c;
        feld_a = 1*feld_a.replace(',','.');
        feld_b = 1*feld_b.replace(',','.');
        feld_c = feld_a*feld_b;
        window.f.c.value=runden(parseFloat(feld_c));

    }
      function dividiere(feld_a,feld_b){
        var c;
        feld_a = 1*feld_a.replace(',','.');
        feld_b = 1*feld_b.replace(',','.');
        feld_c = feld_a/feld_b;
        window.f.c.value=runden(parseFloat(feld_c));
    }


      function addiere(a,b){
        a = 1*a;

        window.f.c.value=a+b;
    }
      function subtrahiere(a,b){
        a = 1*a;
        b = 1*b;
        window.f.c.value=a-b;
    }
      function prozent(a,b){          a = 1*a;
        b = 1*b;
        e = multipliziere(a,b);
        c = dividiere(e,100);
        window.f.c.value=c;
    }

</script>
</head>
<body>
    <h1>Rechner</h1>
        <form name="f">
            Zahl1:<input type="textfield" name="a"><br>
            Zahl2:<input type="textfield" name="b"><br>
            <input type="button" value="  +  " onClick="addiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  -  " onClick="subtrahiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  /  " onClick="dividiere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  *  " onClick="multipliziere(window.f.a.value,window.f.b.value)">
            <input type="button" value="  %  " onClick="prozent(window.f.a.value,window.f.b.value)"><br>
            Ergebnis:              <input type="textfield" name="c">
        </form>
</body>
</html>
Cheffchen
 
Hallo zusammen,
hallo Cheffchen,

vielen Dank für die Hilfe. Die Menge der PVC Streifen lassen sich nun ausrechnen. Leider fehlen mir jetzt noch die laufenden Meter.

Hier müsste das Ergebnis x Durchgangshöhe ( feld_b*feld_c ) gerechnet werden. Da ich das noch nie gemacht habe, stehe ich echt auf dem Schlauch :-(

Ich würde gerne diesen Bedarfsrechner bis 28.05.2011 in meinem PVC Store einbauen. Würde mich daher wirklich sehr über Eure Hilfe freuen.

Bedanke mich jetzt schon bei allen.

Gruß Rene


Code:
<html>
<head>
<script>
 function runden(x) {
   var k = (Math.round(x * 100) / 100).toString();
   k += (k.indexOf('.') == -1)? '.00' : '00';
   return k.substring(0, k.indexOf('.') + 0);
 }
      function dividiere(feld_a,feld_b,feld_d){
        var c;
        feld_a = 1*feld_a.replace(',','.');
  feld_b = 1*feld_b.replace(',','.');
        feld_c = feld_a/24,6;
  feld_d = feld_b*feld_c;
        window.f.c.value=runden(parseFloat(feld_c));
    }
 
</script>
<style type="text/css">
<!--
.Stil1 {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 14px;
}
.Stil4 {font-size: 12px}
.Stil6 {font-size: 14px}
.Stil7 {font-size: 24px}
body,td,th {
 color: #FFFFFF;
}
body {
 background-color: #333333;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
    <h1 align="center" class="Stil1"><span class="Stil1 Stil5"><span class="Stil7">PVC Streifen Bedarfsrechner</span><br>
        <span class="Stil6">PVC Streifenbreite 300 mm / &Uuml;berlappung 36%</span></span></h1>
<form name="f" class="Stil1">
  <div align="center">
    <table width="468" border="0">
      <tr>
        <td width="154">Durchgangsbreite:</td>
        <td width="304"><input type="textfield" name="a"></td>
              </tr>
      <tr>
        <td>Durchgangsh&ouml;he:</td>
        <td><input type="textfield" name="b"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4">                  Bitte hier die Duchgangsbreite und H&ouml;he in Centimeter eingeben. Beispiel: 2 Meter = 200</p>
          <p class="Stil4"><br>
        </p></td>
                </tr>
      <tr>
        <td><strong>Ergebnis:</strong></td>
        <td><input type="textfield" name="c"> 
          <strong>Streifen</strong></td>
                </tr>
      <tr>
        <td><strong>Laufmeter:</strong></td>
        <td><input type="textfield" name="d">
          <strong>Meter</strong></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4"><br>
        <br>
            <br>
            </p>        </td>
                </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="button" value="Bedarf ausrechnen" onClick="dividiere(window.f.a.value,window.f.b.value)"></td>
                </tr>
    </table>
    <p>&nbsp;</p>
    <p>&copy; Copyright by VIMO-TRADE <br>
      </p>
  </div>
</form>
</body>
</html>
 
Werbung:
Hallo,

also das angaben in mm, solltest hinter den beiden felder schreibeb (mm).
Der kompletten Satzt "...2m = 200mm..." soltest dann löschen. damit sagst alle sind blöd. Die die das nicht wissen wirst damit auch nicht helfen, vielleicht noch ein link zu wikipedia :O).
Was Durchgangsbreite/Durchgangshöhe ist, geht bestimmt eindeutig aus deinem PVC Store heraus, soll ja nur ein hilfrechner sein :O).
Die ergebnisse habe ich noch schreibgeschützt.

HTML:
<html>
<head>
<script>
 function runden(x) {
   var k = (Math.round(x * 100) / 100).toString();
   k += (k.indexOf('.') == -1)? '.00' : '00';
   return k.substring(0, k.indexOf('.') + 0);
 }
      function dividiere(feld_a,feld_b){
	var feld_c;
	var feld_d;

	feld_a = 1*feld_a.replace(',','.');
	feld_b = 1*feld_b.replace(',','.');

	feld_c = feld_a/24,6;
	feld_d = feld_b*feld_c;

	window.f.c.value=runden(parseFloat(feld_c));
	window.f.d.value=runden(parseFloat(feld_d));
    }

</script>
<style type="text/css">
<!--
.Stil1 {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 14px;
}
.Stil4 {font-size: 12px}
.Stil6 {font-size: 14px}
.Stil7 {font-size: 24px}
body,td,th {
 color: #FFFFFF;
}
body {
 background-color: #333333;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
    <h1 align="center" class="Stil1"><span class="Stil1 Stil5"><span class="Stil7">PVC Streifen Bedarfsrechner</span><br>
        <span class="Stil6">PVC Streifenbreite 300 mm / &Uuml;berlappung 36%</span></span></h1>
<form name="f" class="Stil1">
  <div align="center">
    <table width="468" border="0">
      <tr>
        <td width="154">Durchgangsbreite:</td>
        <td width="304"><input type="textfield" name="a"></td>
              </tr>
      <tr>
        <td>Durchgangsh&ouml;he:</td>
        <td><input type="textfield" name="b"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4">                  Bitte hier die Duchgangsbreite und H&ouml;he in Centimeter eingeben. Beispiel: 2 Meter = 200</p>
          <p class="Stil4"><br>
        </p></td>
                </tr>
      <tr>
        <td><strong>Ergebnis:</strong></td>
        <td><input type="textfield" name="c" readonly>
          <strong>Streifen</strong></td>
                </tr>
      <tr>
        <td><strong>Laufmeter:</strong></td>
        <td><input type="textfield" name="d" readonly>
          <strong>Meter</strong></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4"><br>
        <br>
            <br>
            </p>        </td>
                </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="button" value="Bedarf ausrechnen" onClick="dividiere(window.f.a.value,window.f.b.value)"></td>
                </tr>
    </table>
    <p>&nbsp;</p>
    <p>&copy; Copyright by VIMO-TRADE <br>
      </p>
  </div>
</form>
</body>
</html>

Cheffchen
 
Hallo Cheffchen,

vielen Dank für Deine Hilfe.

Ich hoffe das ich Dir das letztemal hiermit belästigen muss.

Bei folgenden Dingen gibt es noch Probleme:

Wenn die Durchgangsbreite eingebe, müsste das Ergebnis immer aufgerundet werden. Sprich selbst bei 6,1 Streifen müsste dieser Wert auf 7 aufgerundet werden.

Wenn man dann folgende Daten eingibt ...

Durchgangshöhe: 150
Durchgangsbreite: 200

kommt als Ergebnis

Ergebnis = 6 Streifen
Laufmeter = 1250 Meter

Dies stimmt natürlich nicht, weil das Ergebnis von 6 Streifen * Durchgangsbreite von 200 nicht 1250 Meter sondern 12 Meter sind.

Ich weiß echt nicht wie ich Dir das gutmachen kann. Doch das Ding hier ist mir echt ne Nummer zu groß. Man kann halt nicht alles können :-(

Im voraus vielen Dank für Deine Hilfe.

Sonnige Grüße aus Köln.
 
Hallo,

ich sehe schon das kämpfst, dewegen geht weiter :O).
das die runden funktion versuchst anzupassen ist zum teil richtig, deswegen habe ich die wieder zurück gesetzt und leicht geändert und wird bei lfm genutzt, die jetzt auch meter sind :O). Rundet auf mit 2 stellen nach komma. also 14.141 ist 14.15 obwohl das ja recht unwahrscheinlich ist da ja mit mm einageben arbeitest und da ja wohl kaum einer 200,5mm eingiebt. könnte er aber :O).

Für die streifen habe ich eine neue kleine funktion eingefügt die auf ganze zahl aufrundet.
das runden passiert jetzt auch nicht erst beim anzeigen sondern schon beim rechnen das z.b gleich richtig weiter gerechnet wird mit den ganzen streifen oder ist das falsch?
HTML:
<html>
<head>
<script>
 
   function rundenaufzweistellen(x) {  //aufrunden 2 stellen nach komma
   var k = (Math.ceil(x * 100) / 100).toString();
   k += (k.indexOf('.') == -1)? '.00' : '00';
   return k.substring(0, k.indexOf('.') + 3);
 }
   function rundenauf(x) {  // aufrunden
   var k = Math.ceil(x).toString();
   return k;
 }
      function dividiere(feld_a,feld_b){
 var feld_c;
 var feld_d;
 feld_a = 1*feld_a.replace(',','.');
 feld_b = 1*feld_b.replace(',','.');
 feld_c = rundenauf(parseFloat(feld_a/24,6));
 feld_d = rundenaufzweistellen(parseFloat(feld_b*feld_c/100));
 window.f.c.value=feld_c;
 window.f.d.value=feld_d;
    }
</script>
<style type="text/css">
<!--
.Stil1 {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 14px;
}
.Stil4 {font-size: 12px}
.Stil6 {font-size: 14px}
.Stil7 {font-size: 24px}
body,td,th {
 color: #FFFFFF;
}
body {
 background-color: #333333;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
    <h1 align="center" class="Stil1"><span class="Stil1 Stil5"><span class="Stil7">PVC Streifen Bedarfsrechner</span><br>
        <span class="Stil6">PVC Streifenbreite 300 mm / &Uuml;berlappung 36%</span></span></h1>
<form name="f" class="Stil1">
  <div align="center">
    <table width="468" border="0">
      <tr>
        <td width="154">Durchgangsbreite:</td>
        <td width="304"><input type="textfield" name="a" value="150"></td>
              </tr>
      <tr>
        <td>Durchgangsh&ouml;he:</td>
        <td><input type="textfield" name="b" value="200"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4">                  Bitte hier die Duchgangsbreite und H&ouml;he in Centimeter eingeben. Beispiel: 2 Meter = 200</p>
          <p class="Stil4"><br>
        </p></td>
                </tr>
      <tr>
        <td><strong>Ergebnis:</strong></td>
        <td><input type="textfield" name="c" readonly>
          <strong>Streifen</strong></td>
                </tr>
      <tr>
        <td><strong>Laufmeter:</strong></td>
        <td><input type="textfield" name="d" readonly>
          <strong>Meter</strong></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><p class="Stil4"><br>
        <br>
            <br>
            </p>        </td>
                </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="button" value="Bedarf ausrechnen" onClick="dividiere(window.f.a.value,window.f.b.value)"></td>
                </tr>
    </table>
    <p>&nbsp;</p>
    <p>&copy; Copyright by VIMO-TRADE <br>
      </p>
  </div>
</form>
</body>
</html>

Cheffchen
 
Werbung:
Zurück
Oben