Gå til innhold

Javascript, er alle tall av typen double?


Anbefalte innlegg

Grunnen til at eg stiller spørsmål om Javascript på denne delen av forumet er at eg ikkje forventer eit skikkeleg svar frå den delen av forumet som blir lest av webdesignere. Som bør være forståelig nok :)

 

Eg driver på med å skrive ein 3d renderer i Javascript. Akkurat nå driver eg på med å finpusse på polygonskanneren og det involverer skalering av flyttall der f.eks 10.15 blir til 10150 med hjelp av bit shifting. Som kjent så er beregninger i heltall raskare enn flyttall, men det eg lurer på er om dette er noko å tjene på i Javascript? Eg rekne med at viss alle tall i Javascript er double så vil det gå treigare med å skalere til heltall?

Lenke til kommentar
Videoannonse
Annonse

Med forebehold om at jeg ikke er noe dybdeekspert på dette. Bitvise operatorer som '<<' og '>>', impliserer ihvertfall cast til integer. F.eks (1.5 >> 2) vil f.eks trunkre 1.5 til 1 og så skifte opp til 4, så det er definitivt en heltallsoperator.

 

Jeg mener å ha lest at det er to numeriske datatyper "under panseret" i javascript, int og float, som tilordnes automatisk utifra verdier som legges inn. Det skal dog være semi-transparent for koderen, slik man håndterer alle numeriske variable likt. F.eks kan man si

var a=5; var b=2; var c = a / b;

og få a og b som integers, men man har ikke skille mellom heltalls- og flyttallsdivisjon i javascript, så c blir en float.

 

Mulig parseInt og parseFloat-funksjonene kan hjelpe til å "tvinge" variablene til en gitt type under panseret, men igjen er man vel avhengig av at parseren gjør ting implisitt.

 

Hva som blir raskest i ditt tilfelle vil jeg tro avhenger av om en potensielt kast til integer + skift er raskere enn en flyttalls- divisjon/multiplikasjon i parseren som kjører koden. Det må man evt. teste seg frem til.

Endret av MailMan13
Lenke til kommentar
  • 1 måned senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...