Avatar billede askalot Mester
05. april 2012 - 20:42 Der er 11 kommentarer og
1 løsning

JScript (via Wscript) - parseInt() opfører sig underligt.

Hejsa

Jeg hygger mig med at lave små scripts i windows og har indtil nu lavet dem som vbscript, men fandt fornyligt ud af at man kan gøre det i javascript som jeg kender en del mere til.

Men men men.. der er åbentbart forskelle, jeg bruger normalt parseInt til f.eks at "unpadde" 0075 til 75.

var test1 = parseInt("0075")

Prøver jeg at ouputte test1, returnerer den bare strengen "number".

Er der noget jeg er gået glip af?
Avatar billede supertekst Ekspert
05. april 2012 - 20:59 #1
Hvad sker der hvis du først erklære test1, derefter tilskriver en værdi?
Avatar billede askalot Mester
05. april 2012 - 21:07 #2
Hmm..det skulle da virke bare sådan.. men ok, har prøvet:

//>
var tal = 45;
var streng =  "00"+tal;
var parsedTal;

parsedTal = parseInt(streng);
Wscript.Echo(parsedTal);
//<

Gæt hvad parsedTal outputter... 37! hah ha ha.. åhh ja,skønt.
Avatar billede erikjacobsen Ekspert
05. april 2012 - 21:12 #3
4*8+5 er 27, så den er god nok. En streng, der begynder med 0, læses som oktal, ikke decimal.
Avatar billede alphabits Nybegynder
05. april 2012 - 21:16 #4
For at få det rigtige resultat kan du give basen som andet argument:

parsedTal = parseInt(streng, 10);
Avatar billede erikjacobsen Ekspert
05. april 2012 - 21:17 #5
Ja, ok. 37.

Eller hvis det drejer sig om at fjerne foranstillede nuller i javascript, så brug et regulært udtryk.

        var x = "0045";
    var y = x.replace(/^0+/,'');
Avatar billede askalot Mester
05. april 2012 - 21:18 #6
ahh, ok fandt lige selv en artikel om det..
http://jehiah.cz/a/javascript-parseint-is-broken

Ok, som han også skriver.. basen står angivet til at være 10 som default..så det burde ikke være nødvendigt.

Tak for kommentarerne, alphabits, du får point hvis du vil
Avatar billede alphabits Nybegynder
05. april 2012 - 21:22 #7
Jeg behøver ikke pointene, så bare snup dem selv :)
Avatar billede askalot Mester
05. april 2012 - 21:24 #8
Takker, hva med dig erik ? =)
Avatar billede askalot Mester
05. april 2012 - 21:24 #9
nåh nej.. "du samler slet ikke på point tak"..

=)..eiiich asso
Avatar billede erikjacobsen Ekspert
05. april 2012 - 21:26 #10
Men det ligner ikke normal javascript. Normalt er det i kildetekst:

  var a = 0045;

at a bliver til 37, og ikke ved parseInt.
Avatar billede askalot Mester
05. april 2012 - 21:32 #11
Ja, det er det jeg mener =)
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parseint

på tryit virker det som forventet.

-

kildetext..hvad oversætter du det til på engelsk?
Avatar billede erikjacobsen Ekspert
05. april 2012 - 21:36 #12
Jow, jow, men det er jo netop ikke javascript, det er JScript. Og det er en ganske anden sag. Den gør netop som vi oplever det.
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