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

    [C] Lettura array di float da file e stampa a video

    Ho il seguente file txt:
    codice:
    32.2
    27.4
    24.6
    14.9
    13.2
    12.6
    10.1
    8.7
    7.8
    6.5
    Memorizzo i valori di questo file in un array:
    codice:
    for (int i=0;i<N;i++)
        fscanf(ffile, "%f", &A[i]);
    Poi li stampo a video:
    codice:
    for (int i=0;i<N;i++)
        printf("%f \n", A[i]);
    Ed ottengo questo output a video:
    codice:
    32.200001
    27.400000
    24.600000
    14.900000
    13.200000
    12.600000
    10.100000
    8.700000
    7.800000
    6.500000
    Sapete dirmi perchè il primo valore è stato modificato di 0.000001?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non è stato "modificato" ... semplicemente nel formato floating point in binario (con una precisione limitata) il valore 32.2 non è esprimibile in maniera precisa e il valore che si avvicina di più è 32.2000008 approssimato a 32.200001

    In pratica la mantissa ha un valore periodico ( _real@4200cccd )

    Puoi usare un double e %lf nella printf
    Ultima modifica di oregon; 27-05-2020 a 19:44
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Il problema è che dovrei sommare quei 10 valori e stabilire se la loro somma vale esattamente 100 oppure no, come posso fare?

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.