Ed X: debugen?????

Beitrag lesen

Hi,

vorneweg, ich würde das zeugs per textarea ausgeben. Also
document.form.textarea.value += "\n " + aktuellerWert;
etc.

zu deiner funktion (wir sollen ja mal kompetenz beweisen)
http://forum.de.selfhtml.org/archiv/2002/2/3870/  :-)

function formatDecimal(Number, dec)
{
Number += "";

warum konvertierst du das zum string, wenn du bereits in der nächsten
Zeile wieder numerisch damit rechnest?

RoundNumber = Math.floor(Number*Math.pow(10,dec)+0.5)*Math.pow(10,-dec);
RoundNumber +=  "";

Warum konvertierst du nicht dierekt mit
RoundNumber = String( Rechenausdruck );
und warum deklarierst du die variable nicht lokal mit
var RoundNumber = ....

//alert(RoundNumber);
if ( RoundNumber.indexOf(".") != -1)
  {
   //alert(RoundNumber.length);
  //alert("index= " + RoundNumber.indexOf("."));
   decPoint=(RoundNumber.length - RoundNumber.indexOf(".")-1);
   //alert("decimal" + decPoint);
   switch(decPoint)
   {
case 0:
   //RoundNumber += "00";
   break;
case 1:
   RoundNumber += "0";
   break;
}
  }
  else
  { RoundNumber += ".00";}

return RoundNumber;
}

dieser code ist unflexibel, für jede menge von gewünschten
dezimalstellen brauchst du 'ne case anweisung

hier mein vorschlag:
function formatDecimal(Number, dec) {
  if (dec==0)
   return Math.round(Number);

var zerostring="";
  for (var i=0; i<=dec; i++)
   zerostring += "0";

if ( String(Number).indexOf(".") != -1 )
   Number = String( Math.floor(Number*Math.pow(10,dec)+0.5)*Math.pow(10,-dec) );
  else
   Number += ".";

Number += zerostring;
  if (dec > 0)
   return ( Number.substring(0, Number.indexOf(".")+dec+1) );
 }

bye eddie