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 :

Addition et perte de décimale


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Addition et perte de décimale
    Bonjour,

    Je fais un calcul et le résultat me perd la partie décimale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tableau[$i] = '56,80'
    $tableau_suivant[$i] = '';
    $tableau_suivant[$i] = formatNombre($tableau_suivant[$i] + $tableau[$i]);
    Le champ $tableau_suivant[$i] après l'addition est égal à 56,00.

    Pourquoi ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    BOnjour ,
    si on voyait ce qui se passe dans formatNombre() on pourrait surement te dire lol

  3. #3
    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
    Le séparateur est le point, pas la virgule.
    De plus on ne mets pas de guillemets a un nombre.

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Citation Envoyé par RideKick Voir le message
    BOnjour ,
    si on voyait ce qui se passe dans formatNombre() on pourrait surement te dire lol
    Voici la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function formatNombre($data)
    {
    	return number_format($data, 2, ',', ' ');
    }

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tableau[$i] = 56.80;
    $tableau_suivant[$i] = 0;
    $tableau_suivant[$i] = formatNombre($tableau_suivant[$i] + $tableau[$i]);
    et la ?

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Citation Envoyé par RideKick Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tableau[$i] = 56.80;
    $tableau_suivant[$i] = 0;
    $tableau_suivant[$i] = formatNombre($tableau_suivant[$i] + $tableau[$i]);
    et la ?
    Pas mieux

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Si je supprime formatNombre, c'est bon.

    Mais je risque d'avoir des problèmes dans certains cas.

  8. #8
    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
    Chez moi ca fonctionne.

  9. #9
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'ai créé ma fonction formatNombre suite à un problème explicité sur ce post.

    Et je ne comprend pas du coup quand l'utiliser, quand ne pas le faire.

  10. #10
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Comment je m'en suis sorti :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function convertFormatNombre($data)
                    {
                        if(!is_float($data)) $data = floatval($data);
                        $data = number_format($data, 2, '.', '');
                        return $data;
                    }
    J'exécute cette fonction pour chaque champ que je veux mettre dans un calcul.

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

Discussions similaires

  1. [XL-2010] Perte de décimales lors de copie de cellules
    Par five1966 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/03/2015, 08h36
  2. [AC-2002] Problème de perte de décimale sur table Oracle liée via ODBC
    Par prpa11 dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2014, 18h03
  3. Perte de décimales sscanf
    Par Inouee dans le forum C
    Réponses: 3
    Dernier message: 09/02/2012, 16h01
  4. addition nombre entier et décimal
    Par fey dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/11/2010, 10h31

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