probleme d'addtion de prix en php

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par dadovb, 20 Janvier 2006.

  1. dadovb
    dadovb WRInaute passionné
    Inscrit:
    22 Novembre 2005
    Messages:
    1 653
    J'aime reçus:
    0
    Bonjour à tous,

    J'ai encore un bug bizarre à vous soumettre :

    Je réalise une opération très simple en php : une addition de 3 prix :

    Code:
    $total = $prix1 + $prix2 + $prix 3;
    
    Mon problème c'est que quand j'affiche $total il me vire les centimes, il affiche par exemple 160,00€ alors qu'il devrait m'afficher 160,23€.

    Le truc c que quand j'affiche les prix un par un il m'affiche les centimes correctement !!

    Avez-vous une idée, une suggestion ?
    Merci d'avance.
     
  2. tcctitan
    tcctitan WRInaute discret
    Inscrit:
    15 Janvier 2005
    Messages:
    202
    J'aime reçus:
    0
    regardes le type de variable que tu utilise (entier, float, ...), sinon tu multiplies chaque élément par 100 puis tu divises le total par 100 :p
     
  3. hipopulation
    hipopulation WRInaute occasionnel
    Inscrit:
    28 Juillet 2004
    Messages:
    288
    J'aime reçus:
    0
  4. MarvinLeRouge
    MarvinLeRouge WRInaute impliqué
    Inscrit:
    1 Septembre 2004
    Messages:
    514
    J'aime reçus:
    0
    Salut,

    Si le premier prix rencontré est un entier, le moteur fait peut-être une conversion implicite des autres nombres.
    Il faudrait que tu forces le type de données.
     
  5. dadovb
    dadovb WRInaute passionné
    Inscrit:
    22 Novembre 2005
    Messages:
    1 653
    J'aime reçus:
    0
    euh dites moi si je me gourre mai sles variables en php n'ont pas de type...
     
  6. dadovb
    dadovb WRInaute passionné
    Inscrit:
    22 Novembre 2005
    Messages:
    1 653
    J'aime reçus:
    0
    J'utilise dejà number_format avant pour forcer l'affichage de deux chiffres décimaux (après la virgule).

    Comme j'expliquais dans mon premier post mes trois variables s'affichent correctement quand je fais des echo individuels. C'est lors de l'addition que ya oune betite problème.
     
  7. sonikbuzz
    sonikbuzz WRInaute occasionnel
    Inscrit:
    21 Février 2005
    Messages:
    398
    J'aime reçus:
    0
    salut,
    Code:
    $total = $prix1 + $prix2 + $prix 3; 
    
    je sais pas si c'est ton vrais code mais si c'est la cas ya un espace $prix 3 donc c'est $prix3.
     
  8. muelsaco
    muelsaco WRInaute discret
    Inscrit:
    19 Janvier 2006
    Messages:
    119
    J'aime reçus:
    0
    Je ne crois pas que tu regleras tu problème avec number_format mais peut être que je me trompe car je n'ai jamais rencontré ce problème...
    Il est peut être possible que çà vienne de la configuration du php (php.ini)
     
  9. dadovb
    dadovb WRInaute passionné
    Inscrit:
    22 Novembre 2005
    Messages:
    1 653
    J'aime reçus:
    0
    oui lol dsl faute de frappe, je vous mets mon vrai code :

    Code:
    $totalapayer = $totalprixcd1 + $totalprixcd2 + $totalprixphoto;
    
    et quand je fais :
    Code:
    $totalapayer = $totalprixcd1;
    
    Code:
    $totalapayer = $totalprixcd2;
    
    Code:
    $totalapayer = $totalprixphoto;
    
    Ca s'affiche correctement...
     
  10. hipopulation
    hipopulation WRInaute occasionnel
    Inscrit:
    28 Juillet 2004
    Messages:
    288
    J'aime reçus:
    0
    et en mettant un "." en séparateur pour tes prix, ça ne fonctionne toujours pas?

    je viens de tester ça et ça marche correctement :

    Code:
    <?php
    $p1= 1.54;
    $p2= 3.12;
    $p3= 8.99;
    echo $p1+$p2+$p3;  //affiche 13.65
    ?>
    
    et pour :

    Code:
    $p1= "1,54";
    $p2= "3,12";
    $p3= "8,99";
    echo $p1+$p2+$p3; //affiche 12
    
     
  11. mr_go
    mr_go WRInaute passionné
    Inscrit:
    21 Septembre 2005
    Messages:
    1 688
    J'aime reçus:
    2
    Si, car sinon la fonction is_array() par exemple n'aurait pas d'utilité... ;)
     
  12. mowmow
    mowmow WRInaute impliqué
    Inscrit:
    3 Novembre 2004
    Messages:
    865
    J'aime reçus:
    0
    Code:
    (float) $totalapayer = (float) $totalprixcd1 + (float) $totalprixcd2 + (float) $totalprixphoto;
    Tu pourras ensuite mettre en forme le résultat comme tu le désires avec number_format
    
     
  13. Toutou-Fr
    Toutou-Fr WRInaute occasionnel
    Inscrit:
    22 Août 2005
    Messages:
    479
    J'aime reçus:
    0
    Tu fais cette confusion car la déclaration des variables en php est par défaut implicite. c'est à dire que tu n'es pas obligé de spécifier leur type, php le gère par défaut..en général. mais il peut être utile de spécifier le type, notamment pour une meilleure gestion de la mémoire.
     
  14. muelsaco
    muelsaco WRInaute discret
    Inscrit:
    19 Janvier 2006
    Messages:
    119
    J'aime reçus:
    0
    hipopulation à raison l'erreur doit provenir des virgules. Je n'avais pas compris ton message dans ce sens la dans mon post précédent ;)
    En fait la notation anglaise et différente de la française.
     
  15. mowmow
    mowmow WRInaute impliqué
    Inscrit:
    3 Novembre 2004
    Messages:
    865
    J'aime reçus:
    0
    Personnellement je spécifie le type de mes variables lors de calcul. Mais PHP prend en compte automatiquement les types de variables. Cependant on peut modifier celle-ci dans certains cas ce qui est utile lorsque l'on veut utiliser une variable dans un foreach :

    foreach( (array) $tableau as $key ) {
    ...
    }

    Ca évite de vérifier si $tableau est un tableau :)
     
  16. hipopulation
    hipopulation WRInaute occasionnel
    Inscrit:
    28 Juillet 2004
    Messages:
    288
    J'aime reçus:
    0
    et tu reformates en format français avec number_format....

    de rien :wink:
     
Chargement...
Similar Threads - probleme addtion prix Forum Date
Gros problème sur la profondeur de mes pages Problèmes de référencement spécifiques à vos sites Vendredi à 09:06
Problème de htaccess chez Ionos URL Rewriting et .htaccess 12 Septembre 2022
Problème sur jquery avec fonction asynchrone Développement d'un site Web ou d'une appli mobile 6 Septembre 2022
Problème de crawl et d'indexation Crawl et indexation Google, sitemaps 1 Septembre 2022
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web 8 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022