views:

371

answers:

4

Due to a qty value exceeding what a VBScript INT can store, I'm getting a pretty nasty error message (actually the users are)... This is totally a case of twitpocalypse.

Since CINT() will not work in this situation, what is the best workaround?

requestqty = 40200
CInt() max = 32767
CInt(requestqty)

EDIT
CLng() seems to do the trick, any risk to the code to change all CInt() to CLng(). From what I've read below and elsehwere on the web, it seems like there is really very little reason to even use CInt(). I didn't write this particular app and don't know why one was used over the other, but would prefer to not bandaid the issue and completely fix this issue in the app so it does not happen again...

+3  A: 

CLng or CDec or CDbl

shahkalpesh
A: 

Can you use a double?

NoCarrier
+2  A: 

CLng() and using a Long instead of an Int?

+4  A: 

Aways use long instead of int in VBScript (unless you specifically want to limit the value to the int range).

There is no performance benefit for using the smaller type, and there is no storage size benefit because all variables are variants, so all simple types use the same amount of memory.

Use the CLng function instead of the CInt function.

Guffa
Any reason to not change all of the CInt to CLng? Any risk? I didn't write the app and need to "fix" it rather quickly... I don't touch VBScript and Classic ASP all that much, so a little under water...
RSolberg
You can change all CInt to CLng, but then you have to check that the values are not truncated later in the process, like stored in a smallint field in a database.
Guffa
Perfect.... Thanks...
RSolberg