probleme d'addtion de prix en php

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.
 
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
 
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.
 
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.
 
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.
 
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)
 
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...
 
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
 
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
 
dadovb a dit:
euh dites moi si je me gourre mai sles variables en php n'ont pas de type...

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.
 
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.
 
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 :)
 
muelsaco a dit:
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.

et tu reformates en format français avec number_format....

de rien :wink:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut