Hello
Merci à vous de prendre du temps pour m'aider
Je suis face à un problème curieux. Je dois faire une boucle for avec la valeur de $i incrémenté de 0.5 par itération.
et par itération, je dois tester si $i est un nombre à virgule ou un entier, donc j'utilise is_float() natif à PHP.
Le problème c'est que à la première itération mon $i est un int (tester avec var_dump), à la deuxième (+0.5) il devient un float (normal !), et ensuite à la troisième ainsi que toutes les autres il reste un "float".... donc je comprend pas pourquoi, est ce à cause du +0.5 ?
Peut être que int + float = float peut importe si le résultat est un entier.
Voici mon code, simple :
Dans ce code, $b devrait potentiellement être incrémenter 5 fois le if est "true" à chaque itération...
les var_dump affichent bien float pour les 9 dernières itérations.
Modifié par JENCAL (11 Jul 2018 - 12:45)
Merci à vous de prendre du temps pour m'aider
Je suis face à un problème curieux. Je dois faire une boucle for avec la valeur de $i incrémenté de 0.5 par itération.
et par itération, je dois tester si $i est un nombre à virgule ou un entier, donc j'utilise is_float() natif à PHP.
Le problème c'est que à la première itération mon $i est un int (tester avec var_dump), à la deuxième (+0.5) il devient un float (normal !), et ensuite à la troisième ainsi que toutes les autres il reste un "float".... donc je comprend pas pourquoi, est ce à cause du +0.5 ?
Peut être que int + float = float peut importe si le résultat est un entier.
Voici mon code, simple :
$b = 0;
for ($i=0; $i < 5; $i+=0.5) {
if(is_float($i))
{
$b += 1;
}
var_dump($i);
var_dump(is_float($i));
}
Dans ce code, $b devrait potentiellement être incrémenter 5 fois le if est "true" à chaque itération...
les var_dump affichent bien float pour les 9 dernières itérations.
Modifié par JENCAL (11 Jul 2018 - 12:45)