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).
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...-1.0878432
0.71343694
-0.042832833
-1.0006829
-0.38264121
-1.0006829
-0.70163645
Mi spiego con un esempio:
Il programma scritto è il seguente:-1.087843180
0.713436961
-0.042832833
-1.000682950 <-- agiunto il 50 finale
-0.382641196
-1.000682950 <-- aggiunto il 50 finale
-0.701636434
C' è un modo per memorizzare il numero preciso senza troncamenti o modifiche?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; }
???

Rispondi quotando