Avatar billede sunstream Nybegynder
19. maj 2005 - 17:08 Der er 14 kommentarer og
1 løsning

konvertera en string till ett nummer

Hejsa !

Jag har en variabel (Rows) som jag får ind i flash från en php-fil...den variabeln vill jag bruge i en for-løkke i flash för att lave noen textfelter...

Men problemet är, att när den kommer ind i flash så är det en string och inte ett nummer, så min for-løkke går fullständigt amok :oP

kan man lave den om så att flash fattar att det är ett nummer och inte en string? Eller ska den "konverteringen" ske allerede i php-filen ? og hvis den ska det, hvordan gør man så det ? :o)

hjäääääälp !


...//Fredrik
Avatar billede sunstream Nybegynder
19. maj 2005 - 17:15 #1
glömde liiige att sige, at "Rows" är feks. 8...så jag vill faktiskt bara lave det om fra string(8) til Number(8)... hvis d gir mening :oP
Avatar billede pyroman Nybegynder
19. maj 2005 - 22:58 #2
var rows = Number(rows);

vupti! så let er det ;)
Avatar billede sunstream Nybegynder
20. maj 2005 - 14:10 #3
hmmm...nej d kan jag inte få till att fungera....hvis jag bruger Number() så försöker flash lave det om till ett motsvarande værdi af stringen 8, og inte direkte om till tallet 8...

exempel från flash help:
- If expression is a string, the function attempts to parse expression as a decimal number with an optional trailing exponent, that is, 1.57505e-3.

Och när jag, efter att ha loadet variabeln (rows) som är en string, ind fra php, og laver Number(rows) og tracer det, så får jag att vide af flash att det är NaN...aligvel fast en trace der heder: trace(typeof rows) --> Number

Det gir ingen mening whatsoever :oP

Jag må jo gøre noet forkert :oP

???
Avatar billede pyroman Nybegynder
20. maj 2005 - 17:46 #4
Hmm - det virker for mig hvis jeg fx har følgende:

var str = "8";
var nr = Number(str);
trace(nr+2);


Ellers så kan du jo bruge parseFloat():

var str = "8";
var nr = parseFloat(str);
trace(str+2);
Avatar billede sunstream Nybegynder
21. maj 2005 - 13:53 #5
hahaaaa !!! parseFloat var tingen ! :o))) Number() fungerade kun hvis jag lavede variabeln der skulle konverteras i flash...hvis den kom fra php så gad den ikke...

Men parseFloat fungerar smukkt ! :o) thanx marn !!

smid ett bitte svarskij så får du noen poäng :o))

...//Frippe
Avatar billede barklund Nybegynder
21. maj 2005 - 14:23 #6
Jeg gætter på at din variabel fra php _ikke_ var "8" men derimod "8 " eller "8\n" - altså et 8-tal efterfulgt af noget whitespace.

Så vil Number-konvertering ikke virke simpelt og så skal du have fat i parseInt eller parseFloat - dog da det er et heltal, er parseInt mest logisk.

Men det allermest logiske ville være at have den rigtige værdi læst ind fra PHP:

trace(Number("8 "));        // NaN
trace(parseInt("8 "));      // 8
trace(parseFloat("8 "));    // 8
trace(Number(" 8"));        // 8
trace(parseInt(" 8"));      // 8
trace(parseFloat(" 8"));    // 8
trace(Number("8\n"));      // NaN
trace(parseInt("8\n"));    // 8
trace(parseFloat("8\n"));  // 8
trace(Number("\n8"));      // 8
trace(parseInt("\n8"));    // 8
trace(parseFloat("\n8"));  // 8

Som
Avatar billede barklund Nybegynder
21. maj 2005 - 14:26 #7
(fortsat fra sidste afsnit)

det ses kan Number godt finde ud af det, hvis der er whitespace foran tallet, men ikke hvis det er efter.

Og heri ligger dit problem højst sandsynligt. Og jeg vil stadig påstå, at den allerbedste løsning vil være at læse variablen korrekt :)

--
Morten Barklund
Avatar billede sunstream Nybegynder
21. maj 2005 - 15:33 #8
ok....det har du rätt i...det är ett space foran 8-tallet :oP Men hvordan læser jag så variabeln korrekt? ska jag lave noet extra med den i flash, lr er det i php-filen som "fejlet" opstår ?
Avatar billede barklund Nybegynder
21. maj 2005 - 16:01 #9
Det er i php-filen, at din variabel bliver outputtet forkert. For at det bliver helt korrekt er det smarteste at outputte data som:

&foo=1&
&bar=2&

Og så videre - så vil "foo" blive præcis "1" og ikke " 1 " eller "1\n"
Avatar billede sunstream Nybegynder
23. maj 2005 - 15:56 #10
ok !! sejt :o) jag har så fundet ud af det hele, men hvem ska nu ha poäng ? Omedelbart skulle d ju vare pyroman, fordi att parseFloat() löste mitt omedelbara problem, men barklunds lösning var måske lidt mer "korrekt" mht att jag nu kan bruge Number() (som jag hade prøvet med i starten men inte kunnat få att fungera) :oP Den der er først med ett svar får den....lidt som good 'ol sten, saks og papir :o)))

Tack till båda två :o) !!!!
Avatar billede barklund Nybegynder
23. maj 2005 - 16:17 #11
Kast dem bare efter pyromanen - jeg har vist snuppet nok point fra ham :)
Avatar billede pyroman Nybegynder
23. maj 2005 - 16:23 #12
ja - det er vist også mest fair ;) Morten svarer sgu på alle spørgsmålene herinde, så vi andre knapt nok kan komme til - man skulle tro han arbejdede for eksperten - eller ikke havde noget liv... ;)

cheers
Avatar billede sunstream Nybegynder
23. maj 2005 - 16:24 #13
hehehe !! :o) så länge som vi alla är eniga :o))
Avatar billede barklund Nybegynder
23. maj 2005 - 16:39 #14
Hovhov, tænd ild til dig selv!
Avatar billede pyroman Nybegynder
23. maj 2005 - 16:54 #15
...er løbet tør for benzin og tændstikker - så det må vente til en anden dag ;)
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