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

Langage Perl Discussion :

rounding floating point


Sujet :

Langage Perl

  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut rounding floating point
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $equiproba = 0.25**20;
    9.09494701772928e-013
    Comment puis-je obtenir la valeur 9.095e-013 (si il n'y a pas moyen d'arrondir, 9.094-013 est mieux que rien)?


    Merci,

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Regarde coté sprintf

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par djibril Voir le message
    Regarde coté sprintf
    C'est la première fonction à laquelle j'ai pensé mais l'ennui est que le sprintf doit se faire sur la première partie d'$equiproba sprintf après qu'elle ait été formatée sous une écriture scientifique pour l'affichage avec un e-013.
    ...

    pour Perl $equiproba = 0.0000..00090949
    Il faudrait un module permettant de récupérer la partie1 9.09494701772928 et la partie2 e-013 pour ensuite faire un sprintf sur la partie1.

    sprintf permet la conversion de
    %e a floating-point number, in scientific notation

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf ( "%.3f", sprintf ( "%e",$equiproba) )
    cela donne 0.000

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Voila, j'ai trouvé ... c'est peut-être pas très joli mais cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $equiproba = 0.25**20;
    my ($val, $exp) = ( split /e/, sprintf ("%e", $equiproba) );
    print sprintf ( "%.3f", $val)."e".$exp."\n";
    ... si quelque un a mieux à proposer, le conseil est toujours le bien venu.

    Merci,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Floating point exception dans dlopen()
    Par Invité dans le forum C++
    Réponses: 0
    Dernier message: 10/06/2008, 09h56
  2. Message "(1.5) is not a valid floating point value."
    Par moukah2 dans le forum Débuter
    Réponses: 6
    Dernier message: 22/12/2007, 11h18
  3. Envoi de mail avec Indy : message "Invalid floating point"
    Par Nillak dans le forum Web & réseau
    Réponses: 8
    Dernier message: 03/12/2007, 17h20
  4. Microsoft Basic floating point format
    Par hercule4 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/05/2007, 18h18
  5. Invalid floating point operation
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2005, 23h46

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