Avatar billede Shasim Novice
29. august 2005 - 16:57 Der er 9 kommentarer og
1 løsning

Antal decimaler i sammentælling

Jeg har denne bid script, som tæller sammen:
ct_total.text = Number(ct_antal.value*ct_combo.value);

Den virker fint nok, men når resultatet bliver f.eks. 0.1, så skulle der helst stå 0.10 - Jeg mangler altså den sidste decimal. Kan der gøres noget ved det?
Avatar billede thulstrup Nybegynder
29. august 2005 - 21:44 #1
0.1 og 0.10 er jo det samme, så hvis du vil have Flash til at vise 0.10, bliver du nødt til at konverterer dit tal til en streng. Du kan f.eks. gøre sådan her:

function format(num:Number):String {
    var str:String = num.toString().split(".")[1];
    if (str.length == 1) {
        str += "0";
    }
    str = "0."+str;
    return str;
}
trace(format(0.1));
Avatar billede Shasim Novice
29. august 2005 - 22:21 #2
Jo, det ser fint ud, men hvorfra kalder jeg så den funktion?
Avatar billede thulstrup Nybegynder
29. august 2005 - 22:40 #3
Som i eksemplet oven over:
trace(format(0.1));

eller hvis du vil gemme resultatet i en variabel:
resultat = format(0.1);
Avatar billede Shasim Novice
30. august 2005 - 09:36 #4
Kan du evt. hjælpe mig med at få skruet funktionen sammen med nedenstående funktion?
ct_total er et tekstfelt.

brill = new Object();
brill.change = function() {
    if (ct_antal.value < 16){
      _root.brill.enkelte_brill.gotoAndStop(ct_combo.value+"_"+ct_antal.value+_root.brill_farve);
    ct_total.text = Number(ct_antal.value*ct_combo.value);
    } else {
    _root.brill.enkelte_brill.gotoAndStop(ct_combo.value+"_15"+_root.brill_farve);
    ct_total.text = Number(ct_antal.value*ct_combo.value);
}
_root.brill.brill_maske.gotoAndStop(_root.profil + "_" + _root.bredde);
_root.brill_carat_txt = ct_total.value + " ct.";
    }
ct_combo.addEventListener("change", brill);
ct_antal.addEventListener("change", brill);
Avatar billede thulstrup Nybegynder
30. august 2005 - 11:37 #5
Bare skrift:
ct_total.text = Number(ct_antal.value*ct_combo.value);

ud med:
ct_total.text = format(Number(ct_antal.value*ct_combo.value));
Avatar billede Shasim Novice
30. august 2005 - 13:29 #6
Tusind tak for hjælpen - det virker lige som det skal. Læg et svar, så får du dine points :)
Avatar billede Shasim Novice
30. august 2005 - 13:51 #7
Der var lige en lille ting mere:
Når jeg fylder nul i skrives der "0.undefined" i ct_total - kan det undgås?
Avatar billede thulstrup Nybegynder
30. august 2005 - 18:36 #8
Nå ja, det havde jeg ikke taget højde for :o)

Så skal funktionen se sådan her ud istedet:
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;
}
Avatar billede thulstrup Nybegynder
30. august 2005 - 18:36 #9
Og et svar...
Avatar billede Shasim Novice
30. august 2005 - 20:53 #10
Mange tak igen - hvem der bare var så klog :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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

IT-JOB

Skal lukkes AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Teamleder til AL Sydbanks GDPR & Tech Regulation i Aabenraa

Udlændinge- og Integrationsministeriet

Contract manager til it-området i Udlændingestyrelsen

Djurslands Bank

IT-udvikler