Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Lettura da file di numeri in virgola mobile

    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?
    ???

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Non

    float

    ma

    double

    P.S. Ovviamente deve essere

    fscanf(fd1, "%lf", &vettore[i]);

    (nota %lf e non %f)

  3. #3
    Grazie Oregon.
    Se non specifico il numero di cifre dopo la virgola per default ne mette 6. Per cui accetto qualche zero finale con
    codice:
    %.9lf
    CIao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.