Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 11h31   #1
Invité de passage
 
Inscription : juin 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1
Points : 0
Points : 0
Par défaut perte précision opérateur soustraction

ci-dessous un petit bout de programme où j'affiche différence des valeurs de 2 tableaux cpu2 et cpu, si cette valeur dépasse un certain seuil choisi la case change de couleur vert -> orange ou vert-> rouge

mon problème vient de la précision rendu par le tableau $delta
il arrondi à l'unité et non pas à 2 chiffres après la virgule

$delta[$i] = $cpu2[$i] - $cpu[$i];

j'ai essayé avec la syntaxe sprintf("%01.2f"$var)); pour chaque membre de la soustraction et pour l$delta mais ça n'affecte en rien le résultat retourné

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
echo "<table id='table1'>";
			echo "<tr><th class='th1'>&nbsp;Indic&nbsp;</th></tr>";
	  		echo "<tr><td class='th2'>&nbsp;&#916;CPU&nbsp;</td></tr>";
 
			for($i=0; $i < $nb_elt; $i++)
			{
		    		if ($i < $nb_elt2)
			    	{
			    		$delta[$i] = $cpu2[$i] - $cpu[$i];
			    		if ($delta[$i] >= $seuil_critique)
		  			{
		  				echo "<tr><td class='rouge'><b>&nbsp;".strtoupper($delta[$i])." %"."&nbsp;</b></td></tr>";
		  			}   
 
		  			else if (($delta[$i] >= $seuil_warning) && ($delta[$i] < $seuil_critique))
		  			{
		  				echo "<tr><td class='orange'><b>&nbsp;".strtoupper($delta[$i])." %"."&nbsp;</b></td></tr>";
		  			}
		  			else 
		  			{
		  				echo "<tr><td class='vert'><b>&nbsp;".strtoupper($delta[$i])." %"."&nbsp;</b></td></tr>";
		  			}
		  		}
 
		  		if ($i >= $nb_elt2)
	  			{
	  				echo "<tr><td class='vert'>&nbsp;".strtoupper($zero)." %"."&nbsp;</td></tr>";
	  			}
			}
echo "</table>";
merci par avance
el_guigui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 12h11   #2
Futur Membre du Club
 
Inscription : février 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 28
Points : 18
Points : 18
Ca serai plus lisible avec les balise [CODE]

Un simple round(), ne t'irais pas?
Stolker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 22h56   #3
Membre régulier
 
Avatar de nimbus_77
 
Inscription : décembre 2007
Messages : 109
Détails du profil
Informations personnelles :
Âge : 56

Informations forums :
Inscription : décembre 2007
Messages : 109
Points : 78
Points : 78
Envoyer un message via MSN à nimbus_77
string strtoupper ( string string )
strtoupper retourne string , après avoir converti tous les caractères alphabétiques en majuscules.

pourquoi strtoupper ?

quand à l'addition
Code :
1
2
3
 
    		$delta[$i] = $cpu2[$i] - $cpu[$i];
    		if ($delta[$i] >= $seuil_critique)
pourquoi ne pas tenter avec
Code :
1
2
 
 number_format($delta[$i] , 2, ',', ' ') = number_format($cpu2[$i] , 2, ',', ' ')  - number_format($cpu[$i] , 2, ',', ' ') ;
nimbus_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h51.


 
 
 
 
Partenaires

Hébergement Web