04. juni 2000 - 16:52Der er
37 kommentarer og 5 løsninger
Er tallet lige eller ulige
Hej
Jeg skal kunne validere et tal som input fra en form:
1. Er tallet (heltal)lige eller ulige 2. Er sidste ciffer i tallet (heltal) lige eller ulige (f.eks. cprnr.) 3. Hvor mange cifre er der i tallet (heltal)
Noget ala' ...men hvordan?
1. <% if request.querystring("Tal")= lige heltal then response.write("Dit tal er et lige tal") elseif request.querystring("Tal")= ulige heltal then response.write("Dit tal er et ulige tal") else end if %>
2. <% if request.querystring("Tal")sidste ciffer= lige heltal then response.write("Dit sidste ciffer er et lige tal") elseif request.querystring("Tal")sidste ciffer= ulige heltal then response.write("Dit sidste ciffer er et ulige tal") else end if %>
3. <% if request.querystring("Tal")< 8 cifre then response.write("Dit tal består af under 8 cifre") elseif request.querystring("Tal")> 8 cifre then response.write("Dit tal består af over 8 cifre") elseif request.querystring("Tal")= 8 cifre then response.write("Dit tal består 8 cifre") else end if %>
Om et heltal er lige eller ulige, kan du vel afgøre ved at dividere det med 2 og derefter tjekke om resultatet har nogen decimaler. Er det stadig et heltal, var det oprindelige tal lige, og er det blevet et decimaltal, var det oprindelige tal ullige.
Jeg taler bare af erfaring .. dvs. jeg har selv prøvet at bruge Int (og ja, det var en tal variabel) og der fik jeg en fejl med "funktion ikke defineret" eller noget i den retning...
tdaugaard >> så tror jeg du skal overveje at lære at skrive dine koder ordenligt for int eksisterer i asp og nu når du ved hvad den gør hvorfor samligner du den så med Cint?? hmmmm...
Int eksistere i et hvert programmerings sprog, og den har samme funktion
CInt: Det er en funktion der laver en variabel om til integer, altså et heltal.
Int: Det er en funktion der laver et tal af typen, Float, Single, Double m.m. om til en integer, altså et heltal.
Er du med?
Og grunden til Int hedder det samme i Visual Basic, er fordi ASP kører på et sprog der kaldes VBScript, og kan også programmeres efter JScript. VBScript er noget der stammer fra Visual Basic. Så jeg gentager lige, tdaugaard din erfaring er = pis!
Det var meget spændende at følge svaret, og det virkede ganske fortræffeligt.... nu er det blot
Hvordan valideres om et tal er negativt eller positivt?
<% if request.querystring("Tal") = Negativt then response.write("dit tal er negativt") elseif request.querystring("Tal") = Positivt then response.write("dit tal er positivt") else end if %>
Lige mine ord (de det i funktion via en nyere udgave af mit script) :
<%
Option Explicit
Dim Tal Dim Skriv Dim SkrivV
Tal = Request.QueryString("tal")
If Tal = "" Then Response.Write "Skriv et tal!" Else If (Tal mod 2) = 1 Then Skriv = "ulige" Else Skriv = "lige" End If If SGN(Tal) = -1 Then SkrivV = "Negativt" Else if SGN(Tal) = 0 Then SkrivV = "Neutralt" Else if SGN(Tal) = 1 Then SkrivV = "Positivt" End If End If End If End If
Nu lyder det lidt som om du er "eksperten" her, så derfor vil jeg gerne lige spørge dig om ikke det er bedst f.eks. kun at udføre en funktion een gang (hvis det er muligt) og så gemme resultatet i en variabel ??
F.eks.
intSign = Sgn(Tal)
i stedet for at bruge Sgn() 3 gange.
Jeg har kun HØRT at det er bedst at gemme det i en variabel.
Jeg er ikke klar over, om det er bedre eller hvad, men det jeg kan sige er, at det bliver det samme resultat - men jo ... hvis man skal se det i forhold til resourcer på serveren, så er det klar bedre kun at udføre "beregningen" éen gang i stedet for 3 gange :)
For nu at trække diskussionen i langdrag, vil jeg lige bemærke, at det, Int() rent faktisk gør, er at tage heltalsdelen af et tal, altså fjerne alt efter komma. Dvs. at Int(i) "runder ned" for i>0 og "runder op" for i<0.
Hallo?! Har du ikke lyst til at acceptere de svar der er givet ?!
Synes godt om
Ny brugerNybegynder
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.