L'élégance, je laisse ça aux designers, pour un code je préfère les perfs et l'évolutivité. Ça m'intéresse pas trop de faire du code pour montrer aux autres comme il est beau. XD Y a peu de chance de pouvoir faire mieux qu'une fonction qui parcourt juste l'array et fait 0 assignation. Mais comme je me suis trompé d'une puissance de deux, je veux bien croire qu'il y a une solution à laquelle je n'ai pas pensé mais je vais pas m'amuser à la chercher car la poignée de lignes proposée me semble largement assez optimisée pour ce qu'elle a à faire.
Petit test effectué :
0, 1, 2, 3, 4, etc. s'affichent correctement. Le type est bien un double mais la précision est suffisante pour obtenir un résultat juste à 1 près. Donc le calcul de l'entier maximal avant la perte de précision est au delà même de 2^32.
Grâce à une petite expérience, j'ai une valeur approximative de cet entier limite :
Résultat : -9.007205E+15
Donc la frise chronologique peut remonter jusqu'à - 9 000 000 000 000 000 sans aucune inprécision.
Pfiou, balèze PHP ^^
Petit test effectué :
Code :
for($i=-5000000000;$i>-5000001000;$i--)
{
echo "$i <br />";
};
0, 1, 2, 3, 4, etc. s'affichent correctement. Le type est bien un double mais la précision est suffisante pour obtenir un résultat juste à 1 près. Donc le calcul de l'entier maximal avant la perte de précision est au delà même de 2^32.
Grâce à une petite expérience, j'ai une valeur approximative de cet entier limite :
Code :
for($i=-5000000000;$i>-250000000000000000;$i-=10000000000)
{
$j=$i-1;
if($i - $j != 1)
{
"Perte de précision à ".$i;
break;
}
}
Donc la frise chronologique peut remonter jusqu'à - 9 000 000 000 000 000 sans aucune inprécision.
Pfiou, balèze PHP ^^