Avatar billede Slettet bruger
21. november 2006 - 12:38 Der er 6 kommentarer og
1 løsning

Bruge matematikregnemåder i JavaScript

Hey! Jeg er lige begyndt på JavaScript, da jeg er i praktik hvor jeg skal kode en lommeregner i JavaScript. Men jeg får indtastet 2 tal og sætter den til at lægge dem sammen. Da det er 2 strenge er det klart at den siger at "2" + "4" = "24".

Jeg vil så bare vide om der er en mulighed, hvorpå man kan sætte den til at konvertere til integer som man skal i C#?

Chill!
/rapsac

Kode:

<script language="javascript">
var doc = document.all;
var gyldige_numre = "1234567890";

function regn()
{
    Tal_1 = doc.tal_1.value;
    Tal_2 = doc.tal_2.value;
    Opera = doc.opera.value;
   
if(Opera=="plus"){
    tegn = "+";
}
if(Opera=="minus"){
    tegn = "-";
}
if(Opera=="gange"){
    tegn = "*";
}
if(Opera=="division"){
    tegn = "/";
}
   
if(alert(Tal_1+" "+tegn+" "+Tal_2));
{
    doc.udregning.innerText = Tal_1+" "+tegn+" "+Tal_2;
    doc.resultat.innerText = Tal_1+Tal_2;
}
}
</script>
Avatar billede Slettet bruger
21. november 2006 - 12:48 #1
Du kan bruge parseInt!

Tal_1 = parseInt(doc.tal_1.value);
Tal_2 = parseInt(doc.tal_2.value);

Du kan finde mere om javascript her:

http://www.w3schools.com/jsref/default.asp
Avatar billede Slettet bruger
21. november 2006 - 12:52 #2
Alternativ kan du brug eval som tolker en tekststreng som om det var kode.

var result = eval("2 + 3");//result indeholder 5

eller

var Tal_1 = "2";
var Tal_2 = "3";
var op = "+";
var result = eval(Tal_1 + op + Tal_2);//result indeholder 5
Avatar billede Slettet bruger
21. november 2006 - 13:05 #3
Super! Tak for hjælpen :)
Avatar billede olebole Juniormester
21. november 2006 - 13:37 #4
<ole>

Gå generelt langt udenom w3schools.com, der er propfyldt med alvorlige fejl, mangler og udeladelser.

Brug endelig ikke eval, der er JavaScripts ubestridt langsommeste funktion!

Er der tale om et decimaltal, bruger man ikke parseInt(), men parseFloat().

Du kan også omdanne strenge (f.eks. fra text-inputs) ved at gange med én:

var talA = ELEMENT_1.value * 1;
var talB = ELEMENT_2.value * 1;
var talC = talA + talB;

På lignednde måde, kan du omdanne tal til strenge ved at konkatenere tallet med en tom streng:

var talA = 123;
tal = talA + "";
var talB = talA + 5;
alert(talA); // returnerer strengen: 1235

/mvh
</bole>
Avatar billede Slettet bruger
21. november 2006 - 17:16 #5
olebole du så klog :)
Avatar billede arne_v Ekspert
22. november 2006 - 01:06 #6
hvis man skulle håndkode al den funktionalitet der er i eval, så tror jeg også at
den kode blev langsom
Avatar billede olebole Juniormester
22. november 2006 - 14:05 #7
arne_v >> hvis du med 'håndkode' mener i JS, så ville den blive _ekstrem_ langsom, men i langt de fleste situationer kan med meget få og små midler håndkode den nødvendige funktionalitet. Det er naturligvis ikke i alle tilfælde, man kan undgå eval ... men meget ofte  ;o)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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