View Full Version : [C] problema con i float per windows 7 a 64 bit
peppozzolo
05-09-2010, 09:10
Il problema e piu o meno questo:
ho seven a 64 bit e praticamente ogni programma che scrivo che includa float anche per una semplice divisione mi da sempre risultati con la parte decimale uguale a zero
conoscete un modo per risolvere?
ps uso devc++ 4.9.9.2
se hai scaricato Dev-C++ con il compilatore integrato è una roba del paleolitico.. prova a scaricare l'ultima versione di MinGW e usare quella
peppozzolo
05-09-2010, 09:59
lo so ma purtroppo al'uni mi dato questo e non posso scappare
ps adesso ho provato anche su xp a 32 bit e mi rida il problema
#include<stdio.h>
#include<stdlib.h>
main(){
float x;
x=4/3;
printf("%f",x);
system("pause");
}
anche facendo una cosa cosi stupida mi dovrebbe uscire tipo 1,qualcosa ma esce sempre e solo 1(anzi 1.0000000)
perché quando ha due interi il C fa la divisione intera (quella con resto)
se invece di x = 4/3 scrivi x = 4.0f / 3.0f ti dà il risultato corretto
peppozzolo
05-09-2010, 10:44
perché quando ha due interi il C fa la divisione intera (quella con resto)
se invece di x = 4/3 scrivi x = 4.0f / 3.0f ti dà il risultato corretto
grazie per l'aiuto ma per capire un po meglio cos'e quella f
e poi se avessi due variabili al posto di 4 e 3 come faccio ad avere un risultato reale?
la f serve a specificare che è una costante float e non intera
se avessi
int a = 4, b = 3;
basterebbe castare a float
float x = (float)a/b;
Prova questo:
#include<stdio.h>
#include<stdlib.h>
main(){
float x;
x=4.0/3.0;
printf("%f",x);
system("pause");
}
se scrivi solo 4 anzichè 4.0 viene eseguita una divisione tra interi che poi viene salvata in un float, ma se l'intero vale 1 allora il float vale 1.000000.
Scrivendo invece 4.0 e 3.0 la divisione viene fatta tra float e quindi il risultato è un numero decimale...
peppozzolo
05-09-2010, 11:06
grazie a tutti ragazzi adesso e molto chiaro alla fine per cavarsela in questa casi basta solo imporre al compilatore il tipo di risultato che si vuole ottenere quindi mi sa che la soluzione migliore e l'operazione di cast
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.