Bonjour à tous
Je rencontre un problème extrêmement bizarre avec l'affichage de nombres en virgule flottante. Pour simplifier, aux inclusions et aux enchaînements d'appels de fonctions près, je fais un truc du genre :
et là, le résultat est un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { public function f () { return 12; } } for ($i=0; $i <= 10; $i++) { $obj = new A; printf("%.2f \n", $obj->f()); }
bref, les appels successifs à la même fonction ne renvoient pas le même résultat, ou alors c'est l'affichage qui bug.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 0 0 0 b b NAN NAN 0
J'ai essayé les pistes suivantes :
- remplacer les printf par des echo : sans effet
- vérifier l'encodage : ça à l'air bon du côté de l'UTF-8
En revanche, lorsque j'exécute mon bout de code en dehors de son contexte (avec les classes incluses en début de script, PHP interprète environ 3000 lignes à chaque affichage de page), ça à l'air de marcher mieux. D'où ma question : est-ce que des problèmes de performance peuvent avoir ce genre d'effet sur l'affichage des nombres, en particulier des flottants ?
Je précise que toutes les autres opérations (beaucoup de traitement objet et de requêtes SQL en particulier) se font sans aucun problème...
Des idées ?
Merci !
Partager