Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3056 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pb d'addition avec number_format

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb d'addition avec number_format

n°849793
attentio
Posté le 14-09-2004 à 11:28:00  profilanswer
 

salut a tous  
G un pb avec avec une addition en utilisant la fonction number_format.
je vous explique :
 
 
il faut que j'additionne prix+livraison=total
voila ce qu'il se passe :
si prix =100,00
et que livraison=60,00
pas de probleme le total est bien egal a 160,00
 
mais si prix=200 000 000,00 (certes un peu cher!)
et que livraison=60,00
le total est alors egal a 200
 
OU
 
si prix=18 000,00  
et que livraison=1 500,00
le total est alors egal a 19
 
et il affiche bien 19 et non pas 19.00
et il ne calcule que le dernier millieme
voila voila ...
 
[]code]
//affichage du prix /quantité
echo 'prix :'.number_format($article['prix']*$quantite,2, ',', ' ').'€<br>';
 
//affichage du prix de la livraison
echo 'prix livraison:'.number_format($livraison, 2, ',', ' ').'€<br>';
 
//total (prix total etant le produit de quantité et de prix)
$_SESSION['prix_general']=number_format($livraison+$_SESSION['prix_total'], 2, ',', ' ');
 
echo echo 'prix livraison:'.number_format($HTTP_SESSION_VARS['prix_general']).'€';
 
 [/code]
 
 
merci de votre aide


Message édité par attentio le 24-03-2005 à 21:15:55

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 14-09-2004 à 11:28:00  profilanswer
 

n°850118
Snoopy71
Posté le 14-09-2004 à 17:16:50  profilanswer
 

Normal, les chaînes et les virgules ( pour la partie décimale ) sont assez mal digérés dans le monde numérique de PHP... il s'arrête donc dès qu'il rencontre l'un d'eux.
 
Solution :
 
$prix = float(ereg_replace(",", ".", ereg_replace(" ", "", $prix)));
$livraison = float(ereg_replace(",", ".", ereg_replace(" ", "", $livraison)));
$total = strval($prix + $livraison);
 
Tu peux même le faire en une seule ligne :D  
$total = strval(float(ereg_replace(",", ".", ereg_replace(" ", "", $prix))) + float(ereg_replace(",", ".", ereg_replace(" ", "", $livraison))));

n°850513
ratibus
Posté le 15-09-2004 à 09:26:40  profilanswer
 

Il faut toujours garder la valeur numérique de tes prix et n'utiliser la fonction number_format que pour l'affichage.
 
Ces lignes là :

Code :
  1. //total (prix total etant le produit de quantité et de prix)
  2. $_SESSION['prix_general']=number_format($livraison+$_SESSION['prix_total'], 2, ',', ' ');
  3. echo echo 'prix livraison:'.number_format($HTTP_SESSION_VARS['prix_general']).'€';


 
deviennent donc  

Code :
  1. //total (prix total etant le produit de quantité et de prix)
  2. $_SESSION['prix_general']=$livraison+$_SESSION['prix_total'];
  3. echo 'prix general : '.number_format($_SESSION['prix_general'], 2, ',', ' ').'€';


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pb d'addition avec number_format

 

Sujets relatifs
pb d'enregistrement sous excel au format csvcentrage du text dans page au format CSS ???
Date stockée au format strtotime, comment convertir ?comment connaitre le format ou l'extension d'un fichier ?
[C/C++] lecture de fichiers dans un format perso - gestion des erreursFenêtre de petit format dans dreamweaver
Renommer une feuille dans le bon formatverifier le format d'une variable
Numéro Automatique "Format Alphanumérique"comment changer le format de xml
Plus de sujets relatifs à : pb d'addition avec number_format


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR