Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - C# Calcolo matematico problematico
Forum - C# / VB.NET - C# Calcolo matematico problematico

Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 17:03
Martedì, 18/08/2015
Ciao

Sto cercando di fare questo calcolo matematico:
(3000/25)*27000000

il risultato corretto dovrebbe essere 3.240.000.000

ma se faccio per esempio:
int v = (3000 / 25) * 27000000;

mi dice che è in Overflow.


Ultima modifica effettuata da fosforo il 18/08/2015 alle 17:09
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 19:45
Martedì, 18/08/2015
Testo quotato

Postato originariamente da fosforo:

Ciao

Sto cercando di fare questo calcolo matematico:
(3000/25)*27000000

il risultato corretto dovrebbe essere 3.240.000.000

ma se faccio per esempio:
int v = (3000 / 25) * 27000000;

mi dice che è in Overflow.




double v = (3000 / 25) * 27000000;



If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 156
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 19:48
Martedì, 18/08/2015
Ti dice che il valore non può essere contenuto in un int, USA una variabile double...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:29
Mercoledì, 19/08/2015
Testo quotato

Postato originariamente da torn24:

Ti dice che il valore non può essere contenuto in un int, USA una variabile double...



Per essere precisi dice che é il risultato temporaneo dell'espressione che non può essere contenuto in un intero.
La faccenda del tipo di variabile viene dopo, tanto che anche con una double hai lo stesso errore.

Oltre alla variabile double devi quindi prevedere almeno una costante double in modo che il risultato temporaneo sia in double. Basta scrivere

25.0

al posto di

25


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 10:33
Mercoledì, 19/08/2015
Grazie

Problema risolto.

PM Quote