[C] Precisione macchina float e double

di il
23 risposte

23 Risposte - Pagina 2

  • Re: [C] Precisione macchina float e double

    Nada.. Non so più che pesci pigliare.. ho scritto il codice in tutte le combinazioni possibili che mi avete suggerito.. ma il risultato è sempre lo stesso.
  • Re: [C] Precisione macchina float e double

    Cambia compilatore!

    Usa Cygwin
    Oppure Visual C++ Express (meglio la version 2010)
  • Re: [C] Precisione macchina float e double

    Mi sembra che ancora non hai detto con cosa lavori/compili ...
  • Re: [C] Precisione macchina float e double

    Uso il Bloodshed Dev-C++. Comunque ho scaricato il Visual C++ Express 2010 ed ho provato a compilare lì ma mi da sempre gli stessi numeri. Cortesemente qualcuno a cui da numeri diversi potrebbe postare l'intero codice modificato? Perchè a questo punto o non ho capito io dove è l'errore o è qualcosa relativo al pc con cui lavoro..
  • Re: [C] Precisione macchina float e double

    Sicuramente con quel ide farai fatica a far tutto.
    quello che voleva dire migliorabile è che un valore quale 2.0 dal compilatore viene interpretato come double, essendo double la variabile di precisione maggiore allora tutto sarà convertito per quel tipo di dato.
    Il codice funzionante:
    
    float precisioneSingola()
    {
    	float eps = 1.0f;
    	while((1.0f + eps) > 1.0f)
    		eps = eps / 2.0f;
    	return (2.0f * eps);      
    }
    
    double precisioneDoppia()
    {
    	double eps = 1.0;
    	while((1.0 + eps) > 1.0)
    		eps = eps / 2.0;
    	return(2.0 * eps);      
    }
    
    int main()
    {
    	printf("%.64f\n",precisioneSingola());
    	printf("%.64lf\n",precisioneDoppia());
    	printf("double:%d float:%d\n",sizeof(double),sizeof(float));
    	
    	return 0;   
    }
    
    $ ./iop
    0.0000001192092895507812500000000000000000000000000000000000000000
    0.0000000000000002220446049250313080847263336181640625000000000000
    double:8 float:4
  • Re: [C] Precisione macchina float e double

    phanorat ha scritto:


    Uso il Bloodshed Dev-C++. Comunque ho scaricato il Visual C++ Express 2010 ed ho provato a compilare lì ma mi da sempre gli stessi numeri. Cortesemente qualcuno a cui da numeri diversi potrebbe postare l'intero codice modificato? Perchè a questo punto o non ho capito io dove è l'errore o è qualcosa relativo al pc con cui lavoro..
    Che PC hai? Comunque ... riesci a postare uno zip con la soluzione completa per il Visual ?
  • Re: [C] Precisione macchina float e double

    Ho fatto copia e incolla del codice funzionante, ma continua a darmi sempre gli stesso numeri. Sospetto che sia qualcosa legato al fatto che ho un pc a 64 bit.. boh
  • Re: [C] Precisione macchina float e double

    I float sono a 32bit su tutte le macchine!
    Il problema bisogna cercarlo da qualche altra par e.
    Prova a scaricare code::blocks aprilo, crea un nuovo progetto e selezioni linguaggio c, copia il codice compila ed avvia.
  • Re: [C] Precisione macchina float e double

    phanorat ha scritto:


    Ho fatto copia e incolla del codice funzionante, ma continua a darmi sempre gli stesso numeri. Sospetto che sia qualcosa legato al fatto che ho un pc a 64 bit.. boh
    Hai letto il mio ultimo post?
Devi accedere o registrarti per scrivere nel forum
23 risposte