Avatar billede ulrina Nybegynder
26. juli 2002 - 13:35 Der er 7 kommentarer og
1 løsning

2 decimaler efter komma ?

Jeg har et lille problem med tal i en tekstboks.
hvis jeg skal skrive 150.00 i en tekstboks så skriver den kun 150 eller hvis det nu er 150.10 så skriver den kun 150.1 ... Jeg skal have 2 decimaler på.. hvordan kan jeg gøre det ??
scriptet ser sådan ud:

<script>
    int mm=150.00;
    int xm=150.10;

    function test() {
        form1.textmm.value = mm;
        form1.textxm.value = xm;
    }
</script>
Avatar billede ulrina Nybegynder
26. juli 2002 - 13:37 #1
Undskyld det var ikke int men var.
Avatar billede Keld Nielsen Professor
26. juli 2002 - 13:43 #2
Prøv at kigge på det her spørgsmål:
http://www.eksperten.dk/spm/157539
Avatar billede jakoba Nybegynder
26. juli 2002 - 13:47 #3
eller

function toDecimaler( tal, deci ) { // lav tal til streng med deci decimaler
  if ( 0 > deci ) deci = 0;
  var verdi = "t" +Math.round( tal * Math.pow( 10, deci ) );
  var res = verdi.substring( 1, verdi.length-deci )
            +"."
            +verdi.substring( verdi.length-deci );
  return res;
}; //end toDecimaler( number, integer ) -> string

mvh JakobA
Avatar billede jakoba Nybegynder
26. juli 2002 - 13:48 #4
function test bliver så:

    function test() {
        form1.textmm.value = toDecimaler( mm, 2 );
        form1.textxm.value = toDecimaler( xm, 2 );
    }
Avatar billede ulrina Nybegynder
26. juli 2002 - 13:53 #5
jakoba --> Takker mange gange :) det var perfekt :)
Avatar billede =maddog= Nybegynder
26. juli 2002 - 13:54 #6
Disse to fikse funktioner laver dansk talformat om til float (så man kan lave matematik på dem og tilbage igen.
parse -> (k.kkk.kkk,øø) -> (kkkkkkk.øø)
format -> (kkkkk.øøøøøø) -> (kk.kkk,øø)

function parseDKFloat(str) {
    if (str.constructor==String) {
        temp = str.replace(/\x2e/g,'').replace(/,/g,'.');
        return parseFloat(temp);
    } else if (str.constructor==Number) {
          return str;
    } else return 0.0;
}

function DKNumberFormat(num,decimals) {
  if (num.contructor!=Number) num = parseDKFloat(num); // uha vi kunne få knas i maskinen
  num = (num+"").replace('.',','); // 123.5 -> "123,5"
  if (num.indexOf(',') != num.length-3) { // vi har mere eller mindre end to decimaler
      if (num.indexOf(',') == num.length-2) num += "0"; // en decimal, tilføj 0
    else if (num.indexOf(',') == -1) num += ",00" // ingen decimal, tilføj ,00
    else num = num.substring(0,num.length-1) // flere decimaler, skær overskydende
  } // vi har det nu på formen xxxxxxxx,xx
  if (num.length > 6) { // vi må igang med tusindtals-seperator
    mtt=num.substring(0,num.length-6); //delen mere end tusinde
    ltt=num.substring(num.length-6,num.length); //delen mindre end tusinde
    while (mtt.length > 3) { // bliv ved indtil vi max har 3 tal
      ltt = mtt.substring(mtt.length-3,mtt.length)+"."+ltt;
      mtt = mtt.substring(0,mtt.length-3);
    }
    num = mtt+"."+ltt;
  }
  return num;
}
Avatar billede =maddog= Nybegynder
26. juli 2002 - 13:54 #7
sådan kan man også være for sløv i betrækket. øv da.
Avatar billede jakoba Nybegynder
26. juli 2002 - 14:49 #8
men den er ligegodt flot :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester