Entra

View Full Version : [C++] perchč ((double)(1/256)) č uguale a zero?


czar
08-10-2009, 11:22
Uso eclipse e gcc.
Ma č possibile che faccia zero e che l'operatore divisione sia cosė inutile? ogni volta che faccio operazioni miste tra double e int devo quindi OBBLIGATORIAMENTE andare a castare ogni valore intero per trasformarlo in double prima di eseguire la divisione?

cosė infatti funziona: ((double)1)/256

Mesh89
08-10-2009, 11:42
Uso eclipse e gcc.
Ma č possibile che faccia zero e che l'operatore divisione sia cosė inutile? ogni volta che faccio operazioni miste tra double e int devo quindi OBBLIGATORIAMENTE andare a castare ogni valore intero per trasformarlo in double prima di eseguire la divisione?

cosė infatti funziona: ((double)1)/256

Beh, vedo che ti sei risposto da solo :D
int / int -> int. Se vuoi un risultato in virgola devi perforza "trasformare" (castare) uno dei due a double o float. Non č cosė solo in C++, cmq.

khelidan1980
08-10-2009, 11:44
Uso eclipse e gcc.
Ma č possibile che faccia zero e che l'operatore divisione sia cosė inutile? ogni volta che faccio operazioni miste tra double e int devo quindi OBBLIGATORIAMENTE andare a castare ogni valore intero per trasformarlo in double prima di eseguire la divisione?

cosė infatti funziona: ((double)1)/256

pretendi che ti faccia un cast da int a double automaticamente?:eek:

czar
08-10-2009, 11:47
Beh, vedo che ti sei risposto da solo :D
int / int -> int. Se vuoi un risultato in virgola devi perforza "trasformare" (castare) uno dei due a double o float. Non č cosė solo in C++, cmq.

si praticamente :D
Perchč dici che non č cosė in C++? Mi si č presentato il problema proprio in C++ :D

...č che il matlab mi ha viziato troppo ^^'

Mesh89
08-10-2009, 12:39
si praticamente :D
Perchč dici che non č cosė in C++? Mi si č presentato il problema proprio in C++ :D

...č che il matlab mi ha viziato troppo ^^'

No no, ho scritto "non č cosė solo in C++", intendo che anche altri linguaggi si comportano nello stesso modo.

Torav
08-10-2009, 15:03
puoi fare un cast implicito semplicemente scrivendo 1./256 o 1/256.