Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Overflow di un'operazione aritmetica.
Forum - C# / VB.NET - Overflow di un'operazione aritmetica.

Avatar
Jake7zDunn (Normal User)
Rookie


Messaggi: 30
Iscritto: 24/07/2012

Segnala al moderatore
Postato alle 16:51
Giovedì, 13/09/2012
ho questo codice con nuovadimensione = 21614592 e length = 378602720
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim percentage As Long = (nuovadimensione * 100) / length



perchè mi da' overflow????:grr:


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile. [Albert Einstein]
http://adf.ly/KNVLD
PM Quote
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 17:43
Giovedì, 13/09/2012
Ciao, fai il cast di nuova dimensione come long(immagino sia int, giusto?)

ciaociao!!


... sei un proxy che perde i pacchetti ...
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 19:35
Giovedì, 13/09/2012
puio fare in due modi

    Dim cento As Long = 100
    Dim percentage As Long = (nuovadimensione * cento) / lenght

oppure metti il simbolo "L" dopo 100 per indicare che il valore 100 è tipo long

    Dim percentage As Long = (nuovadimensione * 100L) / lenght


l'overflow viene dato poichè il compilatore sui numeri interi, se non specificato il tipo, assegna il tipo più prossimo nel caso di 100 assegna int32 ed esegue il calcolo in funzione di questo

Ultima modifica effettuata da ampeg il 13/09/2012 alle 19:49
PM Quote
Avatar
Jake7zDunn (Normal User)
Rookie


Messaggi: 30
Iscritto: 24/07/2012

Segnala al moderatore
Postato alle 21:35
Giovedì, 13/09/2012
Grazie ho risolto con Dim percentage As Long = (nuovadimensione * 100L) / length :)


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile. [Albert Einstein]
http://adf.ly/KNVLD
PM Quote