[C] Come calcolare l'rmin.

di il
3 risposte

[C] Come calcolare l'rmin.

Raga dovrei far un programma per trovare il più piccolo numero macchina rappresentabile sia in singola che doppia precisione. Questo è il codice:
#include <stdio.h>

void r_min_Singola_Precisione(double e,int b);

void r_min_Doppia_Precisione (double e,int b);

int main(){
	int b;
	double rmin;
	b=2;
	rmin=1.0;
	
	r_min_Singola_Precisione( rmin, b); 
	
	r_min_Doppia_Precisione ( rmin, b);
	
	return 0;
}

void r_min_Singola_Precisione(double e,int b){
	double rmin1;
	
	while((float)(e/b)!=0){
		rmin1=e;
		e=rmin1/b;
	}
	
	printf("rmin in singola precisione e' %g\n", e);
}

void r_min_Doppia_Precisione (double e,int b){
	double rmin1;
	
	while((double)(e/b)!=0){
		rmin1=e;
		e=rmin1/b;
	}
	printf("rmin in doppia precisione e' %g\n", e);
}



però mi da come risultato:
rmin in singola precisione e' 1.4013e-045
rmin in doppia precisione e' 4.94066e-324

--------------------------------
Process exited after 0.07455 seconds with return value 0
Premere un tasto per continuare . . .


mi potreste aiutare?

3 Risposte

  • Re: [C] Come calcolare l'rmin.

    Non ti conviene farlo in questo modo, se ti servono delle informazioni sui limiti dei numeri in virgola mobile puoi trovarle nel file di libreria float.h (http://www.cplusplus.com/reference/cfloat) se ti servono i limiti per gli interi li trovi in limits.h.

    Sono entrambi nella libc quindi puoi includerli normalmente (#include <float.h> e #include<limits.h>)
  • Re: [C] Come calcolare l'rmin.

    Nosba ha scritto:


    Non ti conviene farlo in questo modo, se ti servono delle informazioni sui limiti dei numeri in virgola mobile puoi trovarle nel file di libreria float.h (http://www.cplusplus.com/reference/cfloat) se ti servono i limiti per gli interi li trovi in limits.h.

    Sono entrambi nella libc quindi puoi includerli normalmente (#include <float.h> e #include<limits.h>)
    e come potrei rifarlo? perchè a quanto ho capito come lho fatto io mi da i numeri denormalizzati, però io vorrei quelli normalizzati...uff
  • Re: [C] Come calcolare l'rmin.

    Non ho capito qual è il tuo problema sui valori trovati...
Devi accedere o registrarti per scrivere nel forum
3 risposte