webForumDet fria alternativet

CInt fungerar inte vid 60.000

ASP

2 svar · 408 visningar · startad av preben

Medlem sedan mars 2009452 inlägg
Frågan#1
IF request("dbaction") = "countCRT" THEN
	crt = FormatPercent( CInt(request("click")) / CInt(request("pageViews")) )
	pageViews = request("pageViews")
	click = request("click")
	pageViews2 = request("pageViews2")

	IF CInt(request("pageViews2")) <> 0 THEN 	click2 = CInt(request("click")) / CInt(request("pageViews")) * CInt(request("pageViews2"))
	
END IF

Denna koden ska räkna ut lite detaljer för AdSense... alltså, mest för kul.

Det fungerar bra, men bara om det står 6000 i request("pageViews2")!!

Om jag hänger på ytterligare en nolla blir det felmeddelande:

***
Microsoft VBScript runtime error '800a0006'

Overflow: 'CInt'

/prislista/adsense.asp, line 9

***

Vad kan det bero på? Någon?

Medlem sedan mars 20041 505 inlägg
#2

En integer i VBScript är bara 2 bytes med maxvärdet 32767.
Använd long istället som är en 4 bytes integer som rymmer över 2 miljarder: CLng()

Medlem sedan mars 2009452 inlägg
#3

Tack!

472 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
345 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)