Problème de chiffre...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de chiffre...

par zeus » 13 févr. 2007, 22:50

Je n'ai pas dit le contraire ;)

C'est justement le but de ma précision : expliquer ce fonctionnement.

Ce n'est pas parce que quelqu'un fait une remarque qu'il faut mal le prendre :?
Je trouve que toute remarque est constructive ;)

ze solution

par toto37 » 13 févr. 2007, 15:34

ca l'est quand té pas au courant.......

Re: ze solution

par zeus » 13 févr. 2007, 15:22

si tu formate ainsi

Code : Tout sélectionner

1 000
si tu fait des test ou des opérations, php crois que ta variable est égale à 1.

Surprenant mais bon c'est comme ça.......
Ce n'est pas surprenant ...
PHP, faiblement casté, ne vérifie pas si l'argument passé pour une multiplication est numérique ou pas.
Lors de la récupération du contenu de la variable, le moteur tente de prendre la partie la plus entière, c'est à dire tant qu'il trouve des caractères numérique ou un "."

Dans le cas de "1 000", il trouve "1" puis un espace. La partie entière de "1 000" est donc "1" ;)

ze solution

par toto37 » 13 févr. 2007, 10:51

test directement $myvar.

ne la transforme pas avec number format avant ton test, le formatage "dénature" la variable, cela m'est arrivé il y a quelques jours , je ne comprenais pas pourquoi lors d'une multiplication le résultat était faux si tu formate ainsi

Code : Tout sélectionner

1 000
si tu fait des test ou des opérations, php crois que ta variable est égale à 1.

Surprenant mais bon c'est comme ça.......

number_format doit être utilisé uniquement pour de l'affichage, en aucun cas tu doit retravailler avec ta variable après.

par zeus » 12 févr. 2007, 21:57

number_format() n'étant utile uniquement pour un affichage, je te conseillerais de ne pas faire
$mavar = number_format($mavar);
comme ça, tu dispose d'un entier normal que tu ne formates qu'a l'affichage

exemple :
if ($mavar>=100) 
{ 
  echo 'vous disposez de : '.number_format($mavar).' points. la commande est possible'; 
}
Ou si tu veux absolument le convertir avant, utilise 2 variables :
$ma_var_formated = number_format($mavar);

if ($mavar>=100) 
{ 
  echo 'vous disposez de : '.$mavar_formated.' points. la commande est possible'; 
}

par Ajoloca » 12 févr. 2007, 21:51

Bonjour,

Et en mettant les deux cotés "à même sauce"?
if ($mavar>=number_format(100)) { echo'commande possible'; } 

Problème de chiffre...

par Invité » 12 févr. 2007, 20:36

Bonsoir,

j'utilise ceci :
$mavar = number_format($mavar)
et mon problème du faite que lorsque je demande une comparaison avec la fonction if du genre :
if ($mavar>=100) { echo'commande possible'; }
!

Donc,le membre a 1000 points de dispo sur son compte et il peut commander a partir de 100 points !

Hors, avec Number format, c'est " 1,000 " et je ne peut pas passer la commande car je n'ai pas les 100 points minimum requis alors que j'ai 1000 points !

Le problème se situe donc avec number_format et sa virgule !

comment puis-je faire ?

merci !

Pour info, le champ dans ma base est de type varchar (25) !