Avatar billede francker Nybegynder
31. oktober 2001 - 16:51 Der er 7 kommentarer og
2 løsninger

Check om tal og lave en streg om til tal

Hvordan kan jeg checke om en variabel er et tal? og hvis det nu er en tekst streng lave den om til et tal med to decimaler?

Jeg har i øjeblikket en kode der skal lægge to tal(mener jeg) sammen. Men outputtet bliver ikke til et tal, men derimod en streng bestående af de to tal.

Den ene variabel/streng kommer fra en access database, hvor den er gemt som en tekststreng. Selve strengen er lavet som et tal med to cifre.

Det andet tal bliver oprettet inden sammen lægningen. Dette tal skal først afrundes.

jeg benytter i øjeblikket denne kode til afrundning af et tal:
tal=tal.toFixed(2);

Koden skal ligge i asp delen af min side. I asp benytter jeg javascript, derfor har jeg oprettet spørgsmålet her:-)
Avatar billede Slettet bruger
31. oktober 2001 - 16:58 #1
Sådan kan du tjekke for, om en variabel er et tal:

<script>
function erTal(tal) {
minRegExp = /^[0-9]+$/;
if (tal.match(minRegExp)) return true;
return false;
}
</script>
Avatar billede Slettet bruger
31. oktober 2001 - 17:00 #2
Den returnerer \"true\" eller \"false\".

Sådan trækker du et heltal ud fra en streng:
parseInt(tal);
og sådan trækker du et kommatal ud fra en streng:
parseFloat(tal);
Derfor skal du nok bruge parseFloat på dine to tal før du lægger dem sammen!
Avatar billede francker Nybegynder
31. oktober 2001 - 17:04 #3
vil parseFloat oprette det afrundede tal eller skal jeg afrunde det bagefter?
Avatar billede Slettet bruger
31. oktober 2001 - 17:09 #4
Hvis du har dette script...

<script>
function lavTal() {
tal = \"Dette er et tal: 15.57893\";
tal = parseFloat(tal);
return tal;
}
</script>

... så vil det returnere 15.57893, og vil derfor ikke afrunde. Men det kan du udvide det til!
Avatar billede francker Nybegynder
31. oktober 2001 - 17:11 #5
kanon. jeg prøver det lige af. tager nok lidt tid.
Avatar billede Slettet bruger
31. oktober 2001 - 17:13 #6
Fx:

<script>
function laegSammen(tal1,tal2) {
tal1 = parseInt(tal1);
tal2 = parseFloat(tal2);
tal2 = tal2.toFixed(2);
tal = tal1 + tal2;
return tal;
}
</script>

Så laver den først tal1 til et heltal og derefter tal2 til et tal med to decimaler. Først dér lægger scriptet tallene sammen og returnerer dem som et tal!

Altså ville laegSammen(\"57\",\"8.91254\") returnere 65.91!
Avatar billede jakoba Nybegynder
31. oktober 2001 - 17:16 #7
Javascript har en indbygget funktion  typeof( xxx ) der fortæller hvad type parameteren har;

<script>

var a = 25
var b = \"25\"
var c = true

alert( \"a er \"+typeof(a) );  // a er number
alert( \"b er \"+typeof(b) );  // b er string
alert( \"c er \"+typeof(c) );  // c er boolean
alert( \"d er \"+typeof(d) );  // d er undefined
alert( \"document er \"+typeof(document) );  // document er object

//men husk at javascript konverterer efter behov (og nogen gange også
// når man heller ville være fri

alert( \"\'\'+a er \"+typeof(\'\'+a) );  // \'\'+a er string
alert( \"1*b er \"+typeof(1*b) );  // 1*b er number

</script>

mvh JakobA
Avatar billede francker Nybegynder
31. oktober 2001 - 17:21 #8
Nu virker det. Det er bare lækkert mange tak til jer begge.
Avatar billede francker Nybegynder
31. oktober 2001 - 17:24 #9
Ups mangler at give point. Lidt flere til jakoba for den gode forklaring og simple løsning.
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