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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] La soustraction selon PHP :p


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut [Configuration] La soustraction selon PHP :p
    Bonjour à tous,

    J'explique le contexte. J'avais une fonction qui permettait de faire des calculs banals avec des "double" positifs.

    Jusque la, aucun soucis.

    Maintenant je dois gérer les nombres négatifs.

    Normalement, le code était prévu pour sauf que :

    Méga surprise, selon PHP:

    echo 360 + (-360.45);

    retourne -0.44999999999999 au lieu de -0.45

    quelqu'un a t'il déjà eu ce cas la et comment avez vous corriger ce "bug" ?

    PS : Je ne souhaite pas utiliser round(), je souhaite que, par exemple, 360 reste 360 et non 360.00.

    Merci par avance

  2. #2
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Pourquoi ne pas utiliser round() et ensuite number_format() ??
    Le contenu est roi, optimisé il est empereur...

    Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.

    http://www.tethis-interactive.com

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    En effet... ca fait peur ;o)

    selon la doc ca peut pourtant arriver...
    http://fr2.php.net/manual/fr/language.types.float.php

    mais bon, ton cas montre vraiment qu'il ne faut pas se fier aux nombres décimaux avec php...

    Apparement, la seule solution est d'utiliser les API faites pour manipuler "réellement" les nombres décimaux (et du coup, de grande taille). Heureusement, elles sont chargées par defaut dans toute configuration php... malheureusement, ca veux dire qu'il faudrait modifier tout ton code...

    http://fr2.php.net/manual/fr/ref.bc.php
    depuis la 5.1.0 sous windows :
    http://fr2.php.net/manual/fr/ref.gmp.php

  4. #4
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    ok, merci pour vos reponses, je vais etudier quelle solution je vais appliquer.

    Merci et bon week end

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

Discussions similaires

  1. [Configuration] Problème avec le php.ini
    Par Vlacar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/09/2006, 12h32
  2. [Configuration] Problème de config (php.ini)
    Par artotal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/08/2006, 00h54
  3. [phpMyAdmin] [Configuration] Configuration de CONFIG.INC.PHP
    Par Antichoc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 03/08/2006, 13h31
  4. Mauvaise Configuration de : Apache et php !
    Par bnadem35 dans le forum Apache
    Réponses: 1
    Dernier message: 06/06/2006, 15h17

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