2009-07-28 7 views
6

Debido a un valor de cantidad que excede lo que puede almacenar VBScript INT, recibo un mensaje de error bastante desagradable (en realidad los usuarios son) ... Esto es totalmente un caso de twitpocalypse.Error de CINT de la aplicación ASP clásica - twitpocalypse v2

Dado que CINT() no funcionará en esta situación, ¿cuál es la mejor solución?

requestqty = 40200 
CInt() max = 32767 

CInt(requestqty) 

EDITAR
CLng() parece hacer el truco, ningún riesgo para el código para cambiar todo CInt() para CLng(). De lo que he leído a continuación y elsehwere en la web, parece que realmente hay muy pocas razones para usar CInt(). No escribí esta aplicación en particular y no sé por qué se usó una sobre la otra, pero preferiría no bloquear el problema y solucionarlo por completo en la aplicación para que no vuelva a ocurrir ...

+0

¿Se puede usar un doble? – NoCarrier

Respuesta

11

Aways usa long en lugar de int en VBScript (a menos que específicamente desee limitar el valor al rango int).

No hay beneficio de rendimiento para usar el tipo más pequeño, y no hay beneficio de tamaño de almacenamiento porque todas las variables son variantes, por lo que todos los tipos simples usan la misma cantidad de memoria.

Utilice la función CLng en lugar de la función CInt.

+0

¿Alguna razón para no cambiar todo el CInt a CLng? ¿Algún riesgo? No escribí la aplicación y necesito "arreglarla" bastante rápido ... No toco VBScript y Classic ASP demasiado, por lo que un poco debajo del agua ... – RSolberg

+0

Puede cambiar todo CInt a CLng, pero luego debe verificar que los valores no se trunquen más adelante en el proceso, como en un pequeño campo de una base de datos. – Guffa

+0

Perfecto ... Gracias ... – RSolberg

2

CLng() y utilizando un Long en lugar de un Int?

Cuestiones relacionadas