arrondir avec sprintf

arrondir avec sprintf - PHP - Programmation

Marsh Posté le 09-11-2007 à 10:05:33    

bonjour à tous,
 
Voila une question interessante... je cherche un moyen d'arrondir de façon optimale des prix...
je vais commencer par un exemple tout bete...
j'ai un article à 4.90€ HT... la TVA est à 2.1% ....j'en commande 5
 
resultat :
 
le prix unitaire TTC (arrondit) de l'article est donc de 5€...
 
... logiquement.. si j'en commande 5.. ça doit me retourner 25€ TTC ... non ?
 
et bien moi il me retourne 25.02€ !!!
 
j'en conclus donc que la valeur arrondie n'est pas prise en compte....
 
un peu de php :
 

Code :
  1. function price_format ($moneyfloat = null)
  2. {
  3.     $money_str = sprintf("%01.3f", $moneyfloat); // convert to rounded (to the nearest thousandth) string
  4.     $thous_pos = strlen($money_str)-1;                     // Thousandth string position
  5.     $hundt_pos = strlen($money_str)-2;                     // Hundredth string position
  6.     if ($money_str[$thous_pos] === "5" ) $money_str[$thous_pos] = ((int)$money_str[$hundt_pos] & 1) ? "9" : "0";
  7.     return sprintf("%01.2f",$money_str); // Return rounded value
  8. }
  9. $item['sous_total_ht'] = price_format($item['prix_unitaire']*$item['qte']);
  10. $item['sous_total_ttc'] = ($item['prix_unitaire']+price_format($item['prix_unitaire']*$item['tva']/100))*$item['qte'];


 
PS : je n'ai pas utilisé round($prix,2) parceque je ne sais pour quelle raison... mais mon prix se transformait en un caractère carré avec cette fonction... bizarre !
 
Merci d'avance pour votre aide
 
 
 

Reply

Marsh Posté le 09-11-2007 à 10:05:33   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed