IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Simple précision et nombre de chiffres significatifs


Sujet :

Fortran

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Simple précision et nombre de chiffres significatifs
    Bonjour à tous !
    Voila j'ai deux questions,
    La première :

    J'ai un code en FORTRAN 77 qui écrit (WRITE) la valeur de reel (4 Octets)
    avec le FORMAT E16.9, Or il me semble que la précision sur quatres Octets est au maximum de 7 chiffres significatifs donc un E14.7 devrai etre suffisant non ?
    Si c'est bien le cas les valeur écritents au dela du 7 ieme chiffre sont aléatoire ?

    La deuxième :
    Sans parler de l'algorithme (qui est douteux je sais), le code lit un fichier ASCII contenant des valeurs flottantes et les stoquent dans une variable de type CHARATER disons string
    ensuite ses valeurs sont converties en reel via l'instruction READ de type :
    read (string,*) flottant

    la forme est stupide (je sais) mais ce qui m'etonne c'est que la valeur flottante n'est pas tout à fait la même que celle affichée par le string.
    par exemple :

    string=' 1.234000E+02 '
    read (string,*) flottant

    flottant va par exemple prendre la valeur :
    1.234012E+02

    Quelqu'un à une explication ?

    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Pas de réponse ?
    Je suis un peu déçu de ne pas avoir de réponse.

    Peut être ai-je pal posé mes questions ou je suis simplement trop impatient ....

    Dans tous les cas merci de m'aider à comprendre

  3. #3
    Membre régulier Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Points : 82
    Points
    82
    Par défaut
    salut

    Faut être patient dans la vie hein...

    Alors un réel simple précision est stocké sur 32 bits (4 octets ou bytes)
    8 sont réservés à l'exposant, et 23 à la mantisse (là où on met les chiffres qu'on voit après la virgule en gros)
    23+8=31...bien sur parceque le denier bit est réservé au signe.
    Alors avec 23 bits on monte jusque 2^22 en maximum représentatif d'où la limite des sept chiffres significatifs.
    si tu en écris plus c'est au bon vouloir du compilo. Exemple, avec en input X=0.1111111111111
    avec un print en E50.25 (soyons fous) on a
    pgi donne 0.1111111100000000000000000E+00
    intel donne 0.1111111119389533996582031E+00, tout comme xlf et f77 (gnu). Peut être utilsent-ils le même algorithme de gestion de précision. En tout cas ce qui est sur c'est que ces chiffres (au delà du 7e) ne sont pas dans la mantisse de X.

    Pour ta deuxième question, c'est plus étrange en deçà de la limite des 7 chiffres.

    Si tu as CHAR='0.123456789E+02'
    tu fais READ(CHAR,*)NUM
    alors NUM=0.1234567XXE+02
    et XX <> 89 ... of course, mais pour sur on a au moins nos 1234567 ...

    As tu un exemple concret pour ton soucis ( à moins de 7 chiffres significatifs) ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Merci
    Ha merci pour ta réponse.
    Sinon pour l'histoire du peuso transtypage, c'était du meme ordre d'idée

    j'affichais plus de chiffre que la précision maximale d'ou l'ajout...

    Voila encore merci et bonne soirée
    --

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/12/2012, 16h31
  2. Nombres de chiffre significatifs sur une figure
    Par lanfou dans le forum MATLAB
    Réponses: 4
    Dernier message: 04/06/2008, 12h36
  3. nombre de chiffres significatifs
    Par mitmit dans le forum SAS Base
    Réponses: 4
    Dernier message: 25/01/2008, 11h29
  4. nombre de chiffres significatifs variable
    Par kamouminator dans le forum C
    Réponses: 4
    Dernier message: 07/11/2006, 15h14
  5. nombre de chiffres significatifs
    Par pianpif dans le forum Langage
    Réponses: 4
    Dernier message: 06/07/2006, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo