Bonjour,
Le contexte :
Un script php parse ligne par ligne un fichier texte et effectue une additionn des valeurs ensemble( TVA+HT==TTC) et fait une comparaison à l'aide de == , hors dans certains cas l'opération est mathématiquement juste, mais PHP me sort un resultat bizarre.Les lignes sont en italiques dans le dernier extrait d'affichage. Merci d'avance pour toute aide ou piste ;-)
la plateforme:
Apache/2.0.55 (Debian) PHP/5.1.6-1
Le fichier texte qu'on traite:
081207, TA550,AAAAAA,D, 454.48,C, 380.00,C, 74.48,
081207, TA551,BBBBBB,D, 5502.37,C, 4400.00,C, 200.64,C, 901.73,
081207, TA552,,D, 5262.40,C, 4400.00,C, 862.40,
081207, TA553,,D, 3961.80,C, 3300.00,C, 12.54,C, 649.26,
111207, TA554,CCCCC,D, 454.48,C, 380.00,C, 74.48,
091207, TA555,,D, 15.00,C, 12.54,C, 2.46,
111207, TA556,,D, 7893.60,C, 6600.00,C, 1293.60,
081207, TA557,DDDDDDDD,D, 227.24,C, 190.00,C, 37.24,
091207, TA558,,D, 227.24,C, 190.00,C, 37.24,
091207, TA559,,D, 15.00,C, 12.54,C, 2.46,
091207, TA560,,D, 10524.80,C, 8800.00,C, 1724.80,
091207, TA561,,D, 2631.20,C, 2200.00,C, 431.20,
091207, TA562,,D, 2751.18,C, 2200.00,C, 100.32,C, 450.86,
091207, TA563,,D, 5277.40,C, 4400.00,C, 12.54,C, 864.86,
111207, TA564,,D, 2631.20,C, 2200.00,C, 431.20,
111207, TA565,EEEEEEEEEE,D, 2631.20,C, 2200.00,C, 431.20,
111207, TA566,,D, 2631.20,C, 2200.00,C, 431.20,
091207, TA567,FFFFFFFFFF,D, 1315.60,C, 1100.00,C, 215.60,
091207, TA568,,D, 227.24,C, 190.00,C, 37.24,
091207, TA571,,D, 11079.72,C, 8800.00,C, 363.66,C, 100.32,C, 1815.74,
091207, TA572,GGGGGGGGGG,D, 2706.19,C, 2200.00,C, 62.70,C, 443.49,
091207, TA569,HHHHHHHHH,D, 227.24,C, 190.00,C, 37.24,
091207, TA570,IIIIIIIIIIIIII,D, 227.24,C, 190.00,C, 37.24,
111207, TA573,,D, 2751.18,C, 2200.00,C, 100.32,C, 450.86,
111207, TA574,,C, 2631.20,D, 2200.00,D, 431.20,
Le code qui le traite :
$array_fichierE=file($name_file_export); // on ouvre le fichier précédement de sortie en entrée
foreach($array_fichierE as $ligne) // on parse le fichier ligne par ligne
{
$champ=explode(",",$ligne); // on éclate les lignes
$ht=$champ[6]+$champ[8]+$champ[10]+$champ[12]; // on additionne les valeurs toute les deux colonne à partir de la 6ième jusqu'a la fin
if ($ht == $champ[4]){ // ht doit être egal à ttc
echo "<font color=green>N°: ".$champ[1]." TVA+HT: ".$ht." EST EGAL AU TTC:".$champ[4]."</font><br>";} // un affichage juste pour verif
else {
echo "<font color=red>N°: ".$champ[1]." TVA+HT: ".$ht." N'EST PAS EGAL AU TTC:".$champ[4]."</font><br>";}
}
un affichage de verif après traitement du texte:
N°: TA550 TVA+HT: 454.48 EST EGAL AU TTC: 454.48
N°: TA551 TVA+HT: 5502.37 N'EST PAS EGAL AU TTC: 5502.37
N°: TA552 TVA+HT: 5262.4 EST EGAL AU TTC: 5262.40
N°: TA553 TVA+HT: 3961.8 EST EGAL AU TTC: 3961.80
N°: TA554 TVA+HT: 454.48 EST EGAL AU TTC: 454.48
N°: TA555 TVA+HT: 15 EST EGAL AU TTC: 15.00
N°: TA556 TVA+HT: 7893.6 EST EGAL AU TTC: 7893.60
N°: TA557 TVA+HT: 227.24 EST EGAL AU TTC: 227.24
N°: TA558 TVA+HT: 227.24 EST EGAL AU TTC: 227.24
N°: TA559 TVA+HT: 15 EST EGAL AU TTC: 15.00
N°: TA560 TVA+HT: 10524.8 EST EGAL AU TTC: 10524.80
N°: TA561 TVA+HT: 2631.2 EST EGAL AU TTC: 2631.20
N°: TA562 TVA+HT: 2751.18 N'EST PAS EGAL AU TTC: 2751.18
N°: TA563 TVA+HT: 5277.4 EST EGAL AU TTC: 5277.40
N°: TA564 TVA+HT: 2631.2 EST EGAL AU TTC: 2631.20
N°: TA565 TVA+HT: 2631.2 EST EGAL AU TTC: 2631.20
N°: TA566 TVA+HT: 2631.2 EST EGAL AU TTC: 2631.20
N°: TA567 TVA+HT: 1315.6 EST EGAL AU TTC: 1315.60
N°: TA568 TVA+HT: 227.24 EST EGAL AU TTC: 227.24
N°: TA571 TVA+HT: 11079.72 EST EGAL AU TTC: 11079.72
N°: TA572 TVA+HT: 2706.19 N'EST PAS EGAL AU TTC: 2706.19
N°: TA569 TVA+HT: 227.24 EST EGAL AU TTC: 227.24
N°: TA570 TVA+HT: 227.24 EST EGAL AU TTC: 227.24
N°: TA573 TVA+HT: 2751.18 N'EST PAS EGAL AU TTC: 2751.18
N°: TA574 TVA+HT: 2631.2 EST EGAL AU TTC: 2631.20
Configuration: Windows XP
Firefox 2.0.0.11