2009-07-28 16 views
6

A causa di un valore di qty che supera quello che un VBScript INT può memorizzare, sto ricevendo un messaggio di errore piuttosto brutto (in realtà gli utenti sono) ... Questo è totalmente un caso di twitpocalypse.Errore CINT Classic ASP CINT - twitpocalypse v2

Poiché CINT() non funziona in questa situazione, qual è la soluzione migliore?

requestqty = 40200 
CInt() max = 32767 

CInt(requestqty) 

EDIT
CLng() sembra fare il trucco, alcun rischio per il codice per cambiare tutto CInt() per CLng(). Da quanto ho letto qui di seguito e da altro sul web, sembra che ci sia davvero ben poca ragione per usare anche CInt(). Non ho scritto questa app in particolare e non so perché uno è stato utilizzato rispetto all'altro, ma preferirei non rilanciare il problema e risolvere completamente questo problema nell'app in modo che non accada di nuovo ...

+0

Puoi usare un doppio? – NoCarrier

risposta

11

Aways use long invece di int in VBScript (a meno che non si voglia specificamente limitare il valore all'intervallo int).

Non c'è alcun vantaggio in termini di prestazioni per l'utilizzo del tipo più piccolo, e non vi è alcun vantaggio in termini di dimensioni di memoria poiché tutte le variabili sono varianti, quindi tutti i tipi semplici utilizzano la stessa quantità di memoria.

Utilizzare la funzione CLng invece della funzione CInt.

+0

Qualche motivo per non cambiare tutto il CInt in CLng? Qualche rischio? Non ho scritto l'app e ho bisogno di "sistemarlo" piuttosto rapidamente ... Non tocco VBScript e ASP classico così tanto, quindi un po 'sott'acqua ... – RSolberg

+0

Puoi cambiare tutte le CInt in CLng, ma quindi è necessario verificare che i valori non vengano troncati più avanti nel processo, come memorizzato in un campo smallint in un database. – Guffa

+0

Perfetto .... Grazie ... – RSolberg

2

CLng() e utilizzando un Long invece di un Int?

Problemi correlati