Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 22/11/2010, 14h33   #1
Membre du Club
 
Inscription : novembre 2003
Messages : 86
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : novembre 2003
Messages : 86
Points : 40
Points : 40
Envoyer un message via Skype™ à Dom_the_quaker
Par défaut perte partie decimale dans variable ${$var}

Bien le bonjour,
j'ai une variable qui se trouve dans une boucle foreach (peu importe a la limite)
dans la quelle je veux stocker une valeur float, et il me "bouffe" ma partie decimale: voici mon bout de code

sachant que $etape vaut "prod" et que $prodList contient des chaines de caractere qu contiennent des noms de tableaux de variables a stocker.
iScan sert a incrementer les index de tableaux
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
		for ($iScan=0;$iScan<$nbEch;$iScan++)
		foreach(${$etape."List"} as $key ) 
			{
			if ( is_true_float($results[$counter]))  // cf doc php "is_float"
				{
				echo $results[$counter]." is a float<br>";
 
				$dataTmp=floatval($results[$counter]); 
 
				echo " $dataTmp ";  // s'affiche bien
				//${$key}[$iScan]=0; //init de la variable   ? --> ca ne donne rien
				//settype(${$key}[$iScan],"float"); // non plus.... :/ 
				${$key}[$iScan] = number_format($dataTmp, 2, '.', ''); //avec ou sans number format ca ne change pas !! :s
 
				echo ${$key}[$iScan]." <br>"; //ne s'affiche pas bien
				}
			else
				${$key}[$iScan]=$results[$counter];
 
			$counter++;
			}
j'ai ajouter un $dataTmp mais ça n'a rien changé, il y a une variable qui contient un float, ou ca marche a chaque fois, et les autres que nini, a chaque fois aussi.
en resultat je n'ai que des entiers.
Quand je fais un settype float, il me fait une erreur :
Code :
1
2
 
Fatal error: Only variables can be passed by reference in
, alors qu'il l'a fait pour la variable precedente....
voila, je suis un peu "a la lose"
je complete en vous mettant le "resultat affiché":
Code :
1
2
3
4
5
6
7
8
9
 
124.3 is a float
124.3 124.30  
1.06 is a float
1.06 1
3.18 is a float
3.18 3
1e-4 is a float
0.0001 0
on peut voir le resultat avant et apres stockage... le premier marche, et le reste??!!!

merci d'avance!
__________________
Au début j'avais pensé à une énorme tapette à souris géante...
Dom_the_quaker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 15h46   #2
Membre du Club
 
Inscription : novembre 2003
Messages : 86
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : novembre 2003
Messages : 86
Points : 40
Points : 40
Envoyer un message via Skype™ à Dom_the_quaker
Alors pour ceux que ça interresse,
j'ai réglé le probleme en ajoutant un
avant de l'utiliser !!
et beh, ça c'est fait.
a bientot!
__________________
Au début j'avais pensé à une énorme tapette à souris géante...
Dom_the_quaker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h18.


 
 
 
 
Partenaires

Hébergement Web