|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Étudiant Inscription : juillet 2012 Messages : 4 ![]() |
Bonjour,
Je travail en PHP 5.4.3 et SQL server 2005 en utilisant les procédures de connexion odbc. Lors d'un ajout d'une valeur en float dans la base de données aucun problème, mais lorsque je veux extraire ces valeurs, si la dernière valeur est un float alors il modifie le nombre de décimal : A l’insertion 65.3 Dans la base de donnée 65.3 A l'affichage 65.299999999999997 Ce problème ne se pose que sur le dernier nombre décimal affiché. Juste pour information le but est d'aller chercher des montants associé a des dispositifs Voici le code PHP : Code :
Code :
Merci. |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Chercheur en informatique Inscription : mai 2002 Messages : 2 346 ![]() |
Bonjour,
J'avais vu un truc dans le même genre, il y aune semaine ou deux, alors après quelques pages en arrière j'ai retrouvé Tu auras peut être la réponse à la question mais en tous les cas la réponse à ton problème ... regardes ici
__________________
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend} fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran) |
|
|
10
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
Si je me rappelle bien de mes cours d'architecture, ce problème est dû à l'encodage de ton réel sur une base 2, certains nombres finis en base 10 se retrouvent irrationnels quand on change leur base, d'ou l'erreur d'arrondi que tu remarques. Pour mieux comprendre, lire l'article sur Wikipedia.
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2012 Messages : 4 ![]() |
Je vous remercie pour vos réponses rapide
|
|
|
00
|
|
|
#5 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
Il faut également faire extrèmement attention au cast implicite en PHP.
Voici une erreur qu'on rencontre régulièrement avec des chaines de caractères: Code :
Dans le second cas (égalité stricte ===), $a et $b ne sont pas castés et la comparaison est effectuée en interne par le moteur à l'aide d'un memcomp (comparaison mémoire binaire), donc là le résultat est juste (mais c'est de la magie noire - dixit Julien Pauli). Le même résultat aurait été obtenu avec strcmp.
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
||
|
00
|
Copyright © 2000-2013 - www.developpez.com