Avatar billede rthuls Nybegynder
23. maj 2004 - 13:00 Der er 6 kommentarer og
1 løsning

streng til tal

Jeg henter variablerne w og h fra et php script. Begge variabler er tal, f.eks 10 og 20. Når de kommer ind i flash vil de selvfølgelig optræde som strenge, derfor laver jeg dem om til tal igen:

w = Number(this.w);
h = Number(this.h);

Jeg checker lige typen for at være sikker:
trace(typeof (w)+" "+typeof (h))

hvilket giver 2x Number. Alligevel kan jeg ikke sige:
trace(w*h)

Det giver nemlig NaN. Jeg har også prøvet med parseInt, men det giver samme resultat.

Hvad er det lige jeg gør galt?
Avatar billede nikolajdu Nybegynder
23. maj 2004 - 13:12 #1
w = parseInt(this.w);
h = parseInt(this.h);
Avatar billede barklund Nybegynder
23. maj 2004 - 13:52 #2
Hvis nu du skriver

trace(typeof NaN);

gæt hvad du så får :)

Hvis number() returnerer NaN, så er det fordi strengen ikke har været en lovlig repræsentation af et tal - der må for eksempel ikke være mellemrum efter tallet - men gerne før. Og NaN * 1 er stadig NaN.

Du skal tjekke, om det er NaN først:

w = Number(this.w);
h = Number(this.h);
if (isNaN(w)) {
    trace("\""+this.w+"\" er ikke et tal");
}
if (isNaN(h)) {
    trace("\""+this.h+"\" er ikke et tal");
}
if (!isNaN(w) && !isNaN(h)) {
    trace("begge er tal, produktet er: "+(w*h));
}
Avatar billede rthuls Nybegynder
25. maj 2004 - 14:45 #3
Hmmm det virker nu, men jeg har ikke rigtigt ændret noget...

barklund >> God pointe med trace(typeof NaN) :-)

nikolajdu >> som jeg også skrev havde jeg også prøvet med parseInt

barklund ligger du et svar, så får du point for din forklaring?
Avatar billede barklund Nybegynder
25. maj 2004 - 14:55 #4
kk ;)
Avatar billede nikolajdu Nybegynder
25. maj 2004 - 17:21 #5
Det med parseInt må jeg have misset :((
Avatar billede rthuls Nybegynder
25. maj 2004 - 19:19 #6
Tak for hjælpen begge!
Avatar billede barklund Nybegynder
25. maj 2004 - 19:21 #7
Tark for points
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