Jonas Le 04/06/2008 à 08:58 Je suis en train de finir les derniers modules de mon projet de stage (qui finit bientot) et je m'aperçois lors de mes tests que je perd de la précision sur pas mal d'endroits!
Mon appli doit faire des calculs (principalement des pourcentages) de dosages pour des recettes. Comme c'est en labo je descend parfois à une grande précision.
Or mon problème c'est que dans ma base MySQL j'ai des double, qui ne sont pas tronqués quand je les insere à la main, mais par contre si je veux les insérer via PHP en passant par sprintf() (je l'utilise pour sécurirser mes requètes) alors les valeurs sont tronqués car sprintf() ne semble pas supporter les double!
Avez-vous deja eu à gérer cela?

"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
Benj Edwards - Why History Needs Software Piracy
- - -
Achat ou échange: topic de mes recherches
Meilleur smiley = #helico#
Obligatory XKCD Zeph Le 04/06/2008 à 09:14 Tu ne peux pas te passer de sprintf et utiliser une méthode un peu plus "php style" pour concaténer tes chaînes (opérateur .) ? Je ne sais pas si ça change quelque chose (peut-être que php fait un sprintf en interne après), mais ça vaut le coup d'essayer. Sinon regarde aussi du coté des options pour changer la précision de %f (un truc genre %5.5f pour avoir 5 chiffres avant et après la virgule, de mémoire ; je ne sais pas si la précision par défaut est la précision maximale).

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
de toute, toutes les conversions double->string passent par (v)(s)(n)printf, donc il vaut mieux le faire explicitement avec un %10.10f
par défaut c'est une précision de 6 (cf "man printf")
Zeph Le 04/06/2008 à 10:12 heu... pour tes deux affirmations, tu es sûr que ça s'applique au cas du PHP ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Jonas Le 04/06/2008 à 23:03 Merci de vos réponses, je teste ça demain.

"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
Benj Edwards - Why History Needs Software Piracy
- - -
Achat ou échange: topic de mes recherches
Meilleur smiley = #helico#
Obligatory XKCD