Ho avuto questa strana esperienza con il problema numero 10 su Project Euler (ottimo sito a proposito). L'incarico consisteva nel calcolare la somma di tutti i numeri primi inferiori a due milioni.Nessuna eccezione di overflow per int in C#?
Ho usato un int per la somma e il mio algoritmo ha prodotto una risposta, ma quando l'ho incollato per verificare la risposta, era sbagliato.
Si è scoperto che il risultato era troppo grande per rientrare in un int, ma ciò non causerebbe un errore di overflow o qualcosa del genere? Invece, ha appena restituito un valore molto lontano dalla risposta reale.
Quando ho cambiato il tipo a lungo, tutto era hunky dory.
Vuoi davvero ogni operazione intero per verificare la presenza di overflow? –
Bene, in questo caso particolare mi avrebbe risparmiato un po 'di tempo;) – erikric
In questo caso, sì. La stragrande maggioranza delle operazioni non può però traboccare. Sarebbe interessante se il compilatore potesse provarlo e disabilitare il controllo come risultato, ma dubito fortemente che lo faccia. – Thorarin