Salve, sottopongo il seguente problema...
Ho un file costituito da un numero in virgola mobile per riga. I numeri in virgola mobile hanno un numero di cifre dopo la virgola variabile (9 cifre max).
-1.0878432
0.71343694
-0.042832833
-1.0006829
-0.38264121
-1.0006829
-0.70163645
Quando vado a memorizzare il valore di ogni riga in un array e poi vado a riscrivere i valori memorizzati nell' array perdo inevitabilmente la precisione delle ultime cifre o invece di riscrivere lo stesso numero di cifre ne perdo l' ultima...
Mi spiego con un esempio:
-1.087843180
0.713436961
-0.042832833
-1.000682950 <-- agiunto il 50 finale
-0.382641196
-1.000682950 <-- aggiunto il 50 finale
-0.701636434
Il programma scritto è il seguente:
codice:
#include<stdlib.h>
#include<stdio.h>

int main() {
FILE *fd1;
int i;
float vettore[esempi];
int esempi=7;
/*legge il file*/
	fd1 = fopen ("file1", "r");
	if ( fd1 == NULL) {
		perror("Errore in apertura del file");
                exit(1);
	}
	for(i=0; i<esempi; i++){
		fscanf(fd1, "%f", &vettore[i]);
		printf("%.9f\n", vettore[i]);
		}
	fclose(fd1);
return 0;
}
C' è un modo per memorizzare il numero preciso senza troncamenti o modifiche?
???