Bonjour, le script suivant, sur mon serveur local WAMP5, me retourne un bizarre résultat pour la multiplication de 8200 par 1000. Voir ici la copie écran : [test03.christophe-charron.org]
Ce même script, déposé sur un serveur internet répond différement, et correctement à mon sens, puisque c'est comme cela que je souhaite récupérer mes données.
Cette différence vient-elle d'une différence de paramétrage de PHP ? du serveur ? d'autre chose ? Comment faire pour que mon serveur WAMP5 renvoie la même chose ?
" La taille des nombres décimaux dépend de la plate-forme. Un maximum de ~1.8e308 avec une précision de 14 décimales est une configuration répandue : c'est le format 64 bits IEEE. "
Pour essayer de voir la différence de config entre ton serveur distant et ta machine tente un localeconv() pour voir comment est configuré l'affichage des nombres sur les 2 machines.
Puis ensuite un setlocale(...) sur ta machine locale pour modifier la config de l'affichage des nombres.
Bonjour, et merci pour l'intérêt. localeconv() renvoie les même valeurs sur les 2 serveurs et il me semble qu'on est loin des limites ! voir ici le localeinfo du serveur distant [test03.christophe-charron.org]
J'ettoffe un peu le script et je ne comprends pas pourquoi de 8100 à 8200 ça foire !!
si tu les enlèves le problème ne se présente plus.
et je te conseille aussi de convertir ta string explicitement en float :
$qte_stock = floatval($toto);
et d'utiliser float() au lieu de double() (qui est déprécié depuis PHP4.2.0).
mais sinon en effet c'est curieux comme problème.
d'autant plus que dans le php.ini de WAMP la précision pour les nombres décimaux est de 12 par défaut (precision = 12 à la ligne 87), donc ce genre d'affichage ne devrait pas se produire.
je n'ai pas d'idée d'où cela pourrait provenir, un bug php sous windows ? un bug windows tout court ? je vais essayer de traquer cette erreur dans un débugger pour voir d'où cela vient. Je te tiens au courant.
oui les décimales sont utiles. Le script n'est ici que didactique. Dans la vraie vie, il s'agit d'une donnée qui provient d'une table dans une base Mysql. La colonne est au format decimal(15,3), c'est pour cela que dans le script, je reprends cette valeur.
> > si tu les enlèves le problème ne se présente plus. > > et je te conseille aussi de convertir ta string explicitement > en float : > > $qte_stock = floatval($toto);
en l'occurrence, cela fait la même chose !!
> > et d'utiliser float() au lieu de double() (qui est déprécié > depuis PHP4.2.0). > > > mais sinon en effet c'est curieux comme problème. > > d'autant plus que dans le php.ini de WAMP la précision pour les > nombres décimaux est de 12 par défaut (precision = 12 à la > ligne 87), donc ce genre d'affichage ne devrait pas se > produire.
oui, ce nombre ne me paraît pas extravagant !!! mais il doit l'être d'une certaine manière.
> > je n'ai pas d'idée d'où cela pourrait provenir, un bug php sous > windows ? un bug windows tout court ? je vais essayer de > traquer cette erreur dans un débugger pour voir d'où cela > vient. Je te tiens au courant. As-tu essayé de passer mon script sur ton serveur WAMP ?
Mais bon, le truc de fou, c'est quand même que cela soit bon pour 8099, pour 8201 masi pas entre. Enfin je n'ai pas testé toutes les valeurs !!! Mais si c'est ça autant arrêter l'informatique et reprendre le boulier !!
Donc appel au peuple utilisateur de la dernière version de WAMP5 : pouvez-vous exécuter ce script sur votre serveur et me dire s'il fonctionne chez vous ?
> bon chui pas prêt de trouver pourquoi nous avons cette erreur. > Je pensais que les debuggeurs php étaient plus perfectionnés > que ça : > Aie !!!! De ce que j'intuite, tu arrives à reproduire le comportement "douteux" ? Rassures moi : le même passage au débuggeur, avec la valeur "8099.000" * 1000 donne-t'il bien "8099000" ? Penses-tu que soumettre notre problématique dans le forum de langue anglaise pour élargir le champ de recherche ?
Quelque part, ça rassure de ne pas être seul au monde !! D'autres gentils testeurs pourraient-ils confirmer/infirmer avec la dernière version de WAMP ou avec des versions antérieures, manière de tenter de cerner le problème ?
Bonjour, j'ai un petit peu avancé grâce à une suggestion faite sur le forum anglais [forum.wampserver.com] utiliser prinf et cela fonctionne bien. Mais cela ne rend pas l'utilisation de écho fiable malgré tout. J'essayerai bientôt de downgrader WAMP pour essayer de déterminer depuis quand ce bug existe et je vous tiendrai au courant.