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 PHP Discussion :

Afficher un 0 à la 14° décimale


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Afficher un 0 à la 14° décimale
    Bonjour à tous,

    est-il possible de forcer PHP à retourner un résultat finissant avec des 0 dans la partie décimale ? (et seulement si le résultat n'est pas exact)

    Un exemple:
    2pi avec 15 chiffres significatifs c'est 6.28318530717958
    calculer 1/(2pi) avec PHP donne 0.1591549430919
    avec quelques décimales de plus (MatLab) ce résultat vaut 0.159154943091895
    ce que je voudrais obtenir avec PHP, c'est 0.15915494309190

    Avec d'autres valeurs PHP me retourne bien 14 chiffres même commençant après la virgule (ex: 0.0039484728293849).
    Le problème ici est que cette 14° valeur est un 0 est qu'il ne l'affiche pas.

    edit : j'ai déjà essayé de faire le calcul inverse pour détecter qu'une approximation a été faite, mais comme cela se passe à la 14° décimale il n'y a pas de différences.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $x = 1/(2*pi());
    echo number_format($x, 14);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    cette solution ne fonctionne pas malheureusement.
    Je souhaite que ce zéro ne s'affiche que s'il correspond à une décimale de la division.
    Avec une autre opération, par exemple 1/2, je souhaite obtenir 0.5, non pas 0.50000000000000

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (substr(number_format($x, 14), -1) != substr(number_format($x, 15), -1, 1)) {
        echo number_format($x, 14);
    }
    else {
        echo $x;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    C'est parfait merci beaucoup !

    Jusqu'alors je pensais que la précision maximale était de 14 digits.
    En poussant un peu la précision du number format à 80 on en découvre 55
    (0.15915494309189551214167579473723890259861946105957031250000000000000000000000000)

    Je ne vais pas demander un cours php mais pourrai-je juste avoir un mot-clé ou une piste pour me documenter ?

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

Discussions similaires

  1. [PrestaShop] afficher les prix avec/sans décimale
    Par jd440 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 18/05/2013, 21h44
  2. Réponses: 1
    Dernier message: 25/11/2009, 12h08
  3. Afficher 3 décimales sous VBA
    Par Mors_Ubyte dans le forum Access
    Réponses: 8
    Dernier message: 18/07/2006, 21h21
  4. Réponses: 10
    Dernier message: 12/04/2006, 10h56
  5. Afficher un nombre avec 2 décimales.
    Par Higestromm dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2006, 16h12

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