A ampy Medlem sedan feb. 2001 1 498 inlägg Frågan 20 dec. 2003 14:40 #1 Jag skickar vidare en besökare med:
response.redirect "reg.asp?p=2.1"
Sedan vill jag köra en kontroll om p är mindre än 5.
response.write (cint(request.querystring("p")) > 5)
Genererar True.
response.write cint(request.querystring("p"))
Genererar 21.
response.write request.querystring("p")
Genererar 2.1.
Varför försvinner punkten när jag kör funktionen cint()?
Om jag istället struntar i att använda cint()-funktionen och kontrollerar så här:
response.write (request.querystring("p") > 5)
Genererar det True ändå.
Varför?
S Sebbe Medlem sedan jan. 2003 2 285 inlägg Testa att använda CSng() istället för CInt(). :)
A ampy Medlem sedan feb. 2001 1 498 inlägg response.write csng(request.querystring("p"))
Genererar 21.
S Sebbe Medlem sedan jan. 2003 2 285 inlägg Hm... Testa det här då:
strTal = Replace(Request.QueryString("p"), ".", ",")
sngTal = CSng(strTal)
Response.Write(sngTal > 5 & " : " & sngTal)
A ampy Medlem sedan feb. 2001 1 498 inlägg Nu fungerar det :)
Men man skulle gärna vilja veta varför punkten försvinner...
S Sebbe Medlem sedan jan. 2003 2 285 inlägg Det verkar som om din server tolkar "," som decimalavgränsare istället för ".", och om man använder CInt() på 2.1 verkar servern tolka det som om den ska ta bort punkten för att få det till en integer istället för att avrunda, som det gör om man har punkt inställd som decimaltecken.