Bonjour,

J'ai une table t_livraison qui contient 2 champs d_paiement et d_restant_du.

Lors d'une requête de mise à jour, je retranche au restant dû existant le paiement.

Jusque là, tout semble assez logique.

Sauf que, le calcul me sort quelque chose d'absurde...

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$sPAY = str_replace(",", ".", $sPAY);
// le *1.0 et le round ont été ajouté pour vérifier mais avec ou
// sans, le problème est identique
$dPAY = round(CalculPaiement($sPAY), 2)*1.0;
$ReqSQL = "UPDATE t_livraison
           SET d_reste_du = d_reste_du - " . $dPAY. "  
           WHERE
               id_s_livr = '". $_POST["IDLIVR"] . "' ";
$result = mysql_query($ReqSQL);
$sPAY contient le détail du paiement et fonctionne parfaitement (le champs associé dans la base.

Dans mon exemple, le montant restant dû est de 1107.90 €
Le paiement est de 1107.70 €

Après la mise à jour, le restant dû est : 0.200000000000045 €

D'où sort cette valeur ???

Merci de vos conseils,

Vincent