Conversion string to float... mais ca marche pas ! [PHP] - PHP - Programmation
Marsh Posté le 14-11-2008 à 13:59:36
Sinon à tous les coups c'est un problème de séparateur décimal. Si la locale est pas bonne, c'est le point, et pas la virgule
Marsh Posté le 14-11-2008 à 14:04:30
Quand je mets FLOAT dans ma BDD, il ne me charge que le "3" de "3 440,50"...
Marsh Posté le 14-11-2008 à 14:07:54
Séparateur décimal, petit Y'a que nous cons de français qui ont mis la virgule, c'est pour ça que ça pète. Remplace partout par un point, et le problème est réglé
Marsh Posté le 16-11-2008 à 16:26:06
Le str_replace sur la "," en "." a super bien marché... mais ca déconne avc le " "...
Il reste un espace que j'arrive pas a virer dans "3 444.45"...
Et donc php ne prend que le "3" en float... pfff !
Marsh Posté le 16-11-2008 à 16:35:19
Code :
|
Tu vires les espaces,
tu remplaces la virgule par le point,
puis tu laisses PHP faire la conversion string2float
car :
Code :
|
fait pareil que
Code : |
je préfère (float) qui est plus rapide (à écrire, mais aussi en temps d'exécution) et plus lisible amha. Enfin bon, à toi de voir ce que tu préfères.
Marsh Posté le 16-11-2008 à 16:48:37
eh bien c'est ce que je faisais... mais bizarrement, ca ne marche pas...
l'espace est tjrs la, et quand je passe en float, il ne me garde que "3"...
Marsh Posté le 16-11-2008 à 16:49:28
Ci-joint mon code complet !
Code :
|
Marsh Posté le 16-11-2008 à 19:58:47
chez moi çà marche parfaitement avec str_replace et (float)
et pourquoi tu mets floatval en commentaire aussi ??
Marsh Posté le 16-11-2008 à 23:48:32
ReplyMarsh Posté le 17-11-2008 à 12:37:39
c'est bizarre que ca m'ache chez vous...
moi, quand je mets le floatval, il ne me garde que le 3...
et le str_replace ne fonctionne pas avec l'espace !!!
Marsh Posté le 17-11-2008 à 13:22:51
Ils ont peut-être mis une espace insécable
Vire tout ce qui n'est pas chiffre et virgule sinon, ce sera plus simple
Marsh Posté le 17-11-2008 à 15:55:41
j'ai demandé le caractere ASCII de cet espac via la fonction ord()...
Il s'agit du 160...
Vous connaissez l'nverse de cette fonction, pour que je mette le code ASCII dans mon str_replace ?
Marsh Posté le 17-11-2008 à 16:22:38
160 c'est bien une espace insécable Ils font ça bien on dirait, c'est exactement ce qu'il faut. L'inverse c'est chr(). Ou tape Alt+0160
Marsh Posté le 17-11-2008 à 16:56:29
youhou !!! on s'en sort...
enfin, on est bon !!!!
merci à tous pour votre aide !!!
Marsh Posté le 14-11-2008 à 13:56:50
hello,
Je récupère un fichier sur le site Euronext pour charger dans une base les valeurs du CAC40... Jusque la, tout fonctionne...
La valeur du cours est de la forme : 3 340,54
Ma base ne contient que des champs en VARCHAR pour charger toutes ses données...
Voilà mon code sur cette partie :
Ensuite, je voudrais faire plein de calculs sur ces données, mais c'est la le soucis...
Quand je convertis un des VARCHAR en float via FLOATVAL, ca déconne et PHP ne me garde que le chiffre avant l'espace des milliers...
Avez vous des idées ?
Merci,
m.