|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2009
Città: Saviano(NA)
Messaggi: 1018
|
[C] problema con i float per windows 7 a 64 bit
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
__________________
Un GRAZIE a tutti voi del forum che ogni giorno mi tirate fuori dai casini .......... Sto giocando a : Hitman Codename 47 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
se hai scaricato Dev-C++ con il compilatore integrato è una roba del paleolitico.. prova a scaricare l'ultima versione di MinGW e usare quella
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2009
Città: Saviano(NA)
Messaggi: 1018
|
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 Codice:
#include<stdio.h>
#include<stdlib.h>
main(){
float x;
x=4/3;
printf("%f",x);
system("pause");
}
__________________
Un GRAZIE a tutti voi del forum che ogni giorno mi tirate fuori dai casini .......... Sto giocando a : Hitman Codename 47 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
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 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2009
Città: Saviano(NA)
Messaggi: 1018
|
Quote:
e poi se avessi due variabili al posto di 4 e 3 come faccio ad avere un risultato reale?
__________________
Un GRAZIE a tutti voi del forum che ogni giorno mi tirate fuori dai casini .......... Sto giocando a : Hitman Codename 47 |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
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; |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 182
|
Prova questo:
Codice:
#include<stdio.h>
#include<stdlib.h>
main(){
float x;
x=4.0/3.0;
printf("%f",x);
system("pause");
}
Scrivendo invece 4.0 e 3.0 la divisione viene fatta tra float e quindi il risultato è un numero decimale... |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2009
Città: Saviano(NA)
Messaggi: 1018
|
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
__________________
Un GRAZIE a tutti voi del forum che ogni giorno mi tirate fuori dai casini .......... Sto giocando a : Hitman Codename 47 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:02.




















