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 :
- function price_format ($moneyfloat = null)
- {
- $money_str = sprintf("%01.3f", $moneyfloat); // convert to rounded (to the nearest thousandth) string
- $thous_pos = strlen($money_str)-1; // Thousandth string position
- $hundt_pos = strlen($money_str)-2; // Hundredth string position
- if ($money_str[$thous_pos] === "5" ) $money_str[$thous_pos] = ((int)$money_str[$hundt_pos] & 1) ? "9" : "0";
- return sprintf("%01.2f",$money_str); // Return rounded value
- }
- $item['sous_total_ht'] = price_format($item['prix_unitaire']*$item['qte']);
- $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