01. september 2005 - 20:41Der er
8 kommentarer og 1 løsning
Mere "decimaler i sammentælling"
Jeg har fået fin hjælp af thulstrup til at få hægtet et nul på f.eks. en værdi som 0,1, så der istedet står 0,10. Mit problem er nu at når min værdi ender på et heltal som 1, så skal der stå 1,00. Hvordan gør man det?
function format(num:Number):String { var str:String = num.toString(); if (str.indexOf(".") != -1) { str = str.split(".")[1]; if (str.length == 1) { str += "0"; } str = "0."+str; } return str; }
Jo, det virker, men nu opdager jeg at der er fejl i funktionen. Jeg har en stepper som ganger værdierne i en combobox og udskriver resultatet som decimaltal i et textfelt. Det går godt indtil jeg når over 1. Altså f.eks 11 x 0.10. Her bliver resultatet 0.10 osv. indtil jeg når op til 2, som bliver rigtigt skrevet som 2.00 ...
Jeg har også et lille forslag til hvordan man kan lave tal med præcis to decimaler:
function todecimaler(x){ x = Math.round(x*100)/100; //afrunder tallet hvis det er mere end to-cifret temp1 = Math.floor( (x - Math.floor(x)) * 10 ); //finder første decimal efter kommaet temp2 = Math.floor( (x*10 - Math.floor(x*10)) * 10 ); //finder anden decimal efter kommaet
if(temp1==0 and temp2==0) x = x+".00"; //tilføjer 2 nuller hvis der ingen decimaler er else if(temp2==0) x = x+"0"; //tilføjer 1 nul hvis der ingen decimal er på 2. decimal
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.