28. februar 2004 - 23:58Der er
5 kommentarer og 1 løsning
VB: Variabel ^2
Jeg har en variabel "inputlinieb", hvis værdi jeg får fra et inputfelt. Jeg sætter f.eks. 2.8 i inputfeltet og kører følgende kode: txtliniea = inputlinieb ^ 2
Så burde txtliniea blive 7.84, men den bliver i stedet 784 (=28^2)
Det er altså tegn på at den ikke registreret det komma (=punktum) der er. Hvad gør jeg galt?
Visual Basic er sat op til at anvende sædvanlig dansk notation ved indlæsning. Punktum er hvad jeg kalder et "pyntetegn" for at gøre tal lettere at læse 1.00.000 f.eks. Komma bruges som tegn for at ni kommer decimalerne. Men det bruges kun ved udskrift og indlæsning.
Hvis du skal tildele en variable en værdi inde i dit program, skal du anvende decimalpunktum. Altså: x=1.5 msgbox x*x vil give udskriften 2,25 (VB bruger decimalkomma, når der udskrives)
Men hvis du bruger x=Inputbox("Indlæs x") og så skriver 1.5 så vil det opfattes som, hvis du havde skrevet 15.
Det er ikke lavet så smart. "Men det skal jo heller ikke være for let" plejer vi at sige. :o)
Undgå brug af inputboxe - dem har Fanden skabt. Du kan ikke forhindre at brugeren taster f.eks. bogstaver ind.
Lav i stedet din egen lille form med et textfelt og en OK-knap - så kan du f.eks. forhindre indtastning af bogstaver i talfeltet, og selv vælge, om du vil bruge . eller , som decimaltegn.
Hvis du skal bruge værdien i en løkke eller lignende der skal køre mange gange, skal du nok udskifte txtliniea = inputlinieb ^ 2 med txtliniea = inputlinieb * inputlinieb da denne metode er LANGT hurtigere :)
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.