View Full Version : [dev c++] Forzare come intero il risultato di una divisione
Scusate ma non mi ricordo come è possibile farlo.
E' una cosa che ho fatto molte volte ma non ricordo come.
Mi potete delucidare?
Grazie.
Fenomeno85
11-02-2005, 22:29
#include <stdio.h>
#include <windows.h>
int main (void){
int i;
float c, f;
c = 6.25;
f = 3.75;
i = c/f;
printf ("%d\n\n",i);
system ("PAUSE");
return (1);
}
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
#include <stdio.h>
#include <windows.h>
int main (void){
int i;
float c, f;
c = 6.25;
f = 3.75;
i = c/f;
printf ("%d\n\n",i);
system ("PAUSE");
return (1);
}
Questo se non sbaglio lo calcola con la virgola e lo tronca quando deve stampare.
Io sono in modalità grafica ho bisogno che proprio dentro la variabile che contiene il risultato venga troncato.
Ha un nome quell'operazione, si metteva prima della variabile una parola chiave, era una cosa tipo:
float a,b,c;
intero.a=b/c;
Fenomeno85
11-02-2005, 23:08
a me risulta che tronca già nella divisione
~§~ Sempre E Solo Lei ~§~
Ecco mi è venuto in mente, si chiama cast di tipo l'operazione che devo fare.
Qualcuno si ricorda come si fa?
Fenomeno se faccio come sopra mi da errore.
Adesso riguardo meglio comunque.
Ops no l'errore era un altro, mi diceva che non poteva convertire un intero in intero ma c'era un errore di sintassi, ora non mi da errori, spero che lo tronchi perchè per adesso non ho modo di verificarlo.
Grazie.
Originariamente inviato da Fenomeno85
a me risulta che tronca già nella divisione
Tronca nell'assegnazione...
Fenomeno85
12-02-2005, 09:50
Originariamente inviato da cionci
Tronca nell'assegnazione...
appunto facciamo un cast implicito :wtf: mica voleva questo?!
cmq si compila il codice che ti ho postato sotto VC
~§~ Sempre E Solo Lei ~§~
Ziosilvio
12-02-2005, 10:45
Originariamente inviato da -Ivan-
Io sono in modalità grafica ho bisogno che proprio dentro la variabile che contiene il risultato venga troncato.
Allora puoi fare così:
n = (int)floor(a/b);
La funzione floor è definita in math.h; floor(x) è un valore double corrispondente al massimo intero che non supera x.
floor funziona uguale al troncamente effettuato sull'assegnazineper i numeri positivi... Per i numeri negativi: per -5.678 renderebbe -6 ;)
VegetaSSJ5
12-02-2005, 14:53
ma non si potrebbe fare semplicementefloat a, b;
int n;
.
.
.
n= (int) a/b;:confused:
Originariamente inviato da VegetaSSJ5
ma non si potrebbe fare semplicementefloat a, b;
int n;
.
.
.
n= (int) a/b;:confused:
Certo, se abbiamo capito quello che chiede...in quel caso (int) lo puoi comunque omettere...
mpattera
13-02-2005, 14:13
float a,b;
int c;
c= (int) (a/b);
quoto il cast di tipo
n = (int)(a/b);
byezzz
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.