Null nach dem Komma

Teedoubleyou

Grünschnabel
Hi,
Ich habe versucht die fehlenden Nullen hinter dem Komma einer Berechnung hinzubekommen.Ich habe Einiges dazu gelesen und versucht aber nichts hat gefunzt.Folgender Code soll das Problem beheben ,aber wie baut ich den bei mir ein.Kann mir jemand helfen ich verzweifel langsam.

Danke Thorsten

function kaufm(x) {
var k = (Math.round(x * 100) / 100).toString();
k += (k.indexOf('.') == -1)? '.00' : '00';
var p = k.indexOf('.');
return k.substring(0, p) + ',' + k.substring(p+1, p+3);
}


Mein Berechnungsscript.

<!--
function summe(){
var preisA = 1.00;
var preisB = 2.80;
var preisC = 1.90;
var preisD = 3.90;
var portoA = 1.70;
var portoB = 0.70;
var portoC = 4.10;
var portoD = 1.50;
var anzahlA = 0;
var anzahlB = 0;
var anzahlC = 0;
var anzahlD = 0;
var gPreis = 0;
var gporto = 0;
var npreis = 0;


with(window.document.form){
if(.value==''){
anzahlA = 0;
}else{
anzahlA = .value;
}
if(1.value==''){
anzahlB = 0;
}else{
anzahlB = 1.value;
}
if(Mathilde2.value==''){
anzahlC = 0;
}else{
anzahlC = 2.value;
}
if(.value==''){
anzahlD = 0;
}else{
anzahlD = 3.value;
}
if (anzahlA==0){
gporto = portoB;
}else{
gporto = portoA;
}
if (anzahlA>=3){
gporto = portoC;
}
if (anzahlA + anzahlB + anzahlC + anzahlD==0) {
gporto = 0;
}
npreis=(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD))*100))/100;
gPreis =(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD)+(gporto))*100))/100;
Netto.value= npreis;
Porto.value = gporto;
Gesamtpreis.value = gPreis;
}
}
//-->
 
Zuletzt bearbeitet:
Wie wärs, wenn du das ganze als einen String beahndelst?
PHP:
function addzero( zahl ) {
    tmpzahl = zahl.split(".");
    if (tmpzahl[1].length == 1) {
        return zahl + "0";
    } else {
        return zahl;
    }
}
 
Danke
aber das ist mir zu hoch
und wie und wo baue ich das ein ?Bin Anfänger und bekomme heute nur Fehlermeldungen.Weiss nicht jemand wie man das Teil da oben einbaut?

Gruss Thorsten
 
Hm, ich weiss nicht ganz genau, was du meinst, aber vielleicht kannst du ja mit folgendem Beispiel was anfange:
PHP:
<html>
<head>
<script type="text/javascript">
function addzero( zahl ) {
    tmpzahl = String(zahl)
    tmpzahl = tmpzahl.split(".");
    if (tmpzahl.length == 1) {
        return zahl + ".00";
    } else if (tmpzahl[1].length == 1) {
        return zahl + "0";
    } else {
        return zahl;
    }
}

enz = prompt("Bitte eine Zahl eingeben: ", "");
alert(addzero(enz));
</script>
</head>
</html>
 
Hi erstmal schönen Dank für Deine Hilfe.
Ich weiss einfach überhaupt nicht wie und wo ich Dein Script bezogen auf mein Script einbauen muss.Hier ist doch meine Berechnung.Ich möcht ,nun da die Nullen haben.(npreis ,Gporto ,gPreis)Der gesamte Code steht im ersten posting.Wahrscheinlich ist es garnicht so schwer aber ich schnall es nicht.

Gruss Thorsten

npreis=(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD))*100))/100;
gPreis =(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD)+(gporto))*100))/100;
Netto.value= npreis;
Porto.value = gporto;
Gesamtpreis.value = gPreis;
}
}
//-->
 
Hallo,
[qoute]
Ich möcht ,nun da die Nullen haben.(npreis ,Gporto ,gPreis)
[/qoute]

Code:
 <!--
function addzero( zahl ) {
    tmpzahl = zahl.split(".");
    if (tmpzahl[1].length == 1) {
        return zahl + "0";
    } else {
        return zahl;
    }
}

function summe(){
  var preisA = 1.00;
  var preisB = 2.80;
  var preisC = 1.90;
  var preisD = 3.90;
  var portoA = 1.70;
  var portoB = 0.70;
  var portoC = 4.10;
  var portoD = 1.50;
  var anzahlA = 0;
  var anzahlB = 0;
  var anzahlC = 0;
  var anzahlD = 0;
  var gPreis = 0;
  var gporto = 0;
  var npreis = 0;
 

  with(window.document.form){
    if(.value==''){
      anzahlA = 0;
    }else{
      anzahlA = .value;
    }

    if(1.value==''){
      anzahlB = 0;
    }else{
      anzahlB = 1.value;
    }

    if(Mathilde2.value==''){
      anzahlC = 0;
    }else{
      anzahlC = 2.value;
    }

    if(.value==''){
      anzahlD = 0;
    }else{
      anzahlD = 3.value;
    }

    if (anzahlA==0){
      gporto = portoB;
    }else{
      gporto = portoA;
    }

    if (anzahlA>=3){
      gporto = portoC;
    }

    if (anzahlA + anzahlB + anzahlC + anzahlD==0) {
      gporto = 0;
    }
    npreis=(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD))*100))/100;
    gPreis=(Math.round(((preisA*anzahlA)+(preisB*anzahlB)+(preisC*anzahlC)+(preisD*anzahlD)+(gporto))*100))/100;
    Netto.value= addzero(npreis);
    Porto.value = addzero(gporto);
    Gesamtpreis.value = addzero(gPreis);
  }
}
//-->
Habs nicht getestet sollte aber funktionieren

bye
 
Zuletzt bearbeitet:
Schon mit:

Code:
var diesunddas = "1.23";
diesunddas += 7 * 1.23;

diesunddas.toFixed(2);

probiert?

z.B....

rundet diesunddas auf zwei Nachkommastellen.
:rolleyes:
 
Zuletzt bearbeitet:
Hi
ich habe das umgeschriebene Script kopiert eingebaut.Ich erhalte aber eine Fehlermeldung.Keine Ahnung warum.Thanks for your help.

toFixed(2) kann nicht funktioinieren da ja meine Werte gerade Zahlen sind und so eine oder zwei Nullen nicht angehängt werden.

Gruss Thorsten
 
Ist ja wurscht, wie die Zahlen sind.

Ich deklarier die Variablen immer wie einen String und rechne damit.
So halt auch mit toFixed(2); oder whatever.

Wenn du wie in meinem kleinen Rechenexempel die Variable benutzt funktioniert das eigentlich.

Ich hab auch ein Skript, in dem Ausschliesslich Euro und Cent verarbeitet werden, lasse es aber trotzdem durch toFixed(2) auf Kommagenauigkeit prüfen.

ein var zahl = '1.22'; kann ich doch mühelos zahl = zahl * '2'; nehmen.
Oder was immer....

:)

PS: musst halt auch zahl = '1.00' deklarieren und nicht zahl = '1'

Korrigier mich! gehört nicht in Anführungszeichen....
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück