PHP : comparer string et float

Bonjour

J’ai une variable, disons $a.
Dans cette variable j’ai enregistré une partie d’un string (avec substr) qui se trouve etre un nombre (flottant ).
Et je voudrai la comparer avec un entier ou un flottant.
Si je faits par exemple if ( $a < 10) … ca marche.
Mais si je fait if ( $a < 9.5 ) ca me renvoie toujours vrai quelque soit la valeur de a.

Merci pour votre aide

ce serait pas 9,5 avec une virgule et pas un point ?

Essaye floatval($a), ou (float)$a. Néanmoins, si l’une des opérandes est numérique, alors php fait un cast implicite de l’autre opérande vers un type numérique, si possible.

non, la virgule est un séparateur (exemple : separer les arguments d’une fonction), et pas une virgule numérique. (Dans le doute j’ai quand meme essayé et j’obtient une erreur de syntaxe).


[quote="Sans-Nom"] Essaye floatval($a), ou (float)$a. Néanmoins, si l'une des opérandes est numérique, alors php fait un cast implicite de l'autre opérande vers un type numérique, si possible. [/quote] Je viens d'essayer et ca ne change rien. Mais chose bizarre, je me suis aussi rendu compte que si je met $a<10.5 il va me renvoyer vrai quelque soit a <11 et faut sinon...
Voici exactement comme je l'ai ecrit (le (float) ne changeant rien) :
	if((float)$prix<10.5)

Tente un var_dump($prix) ?

merci, ça m’a affiché mon string et je me suis aperçu que le prix était encodé avec une virgule.
Je supposes que c’est ce que voulait dire angmar67, mais j’avais mal compris sa phrase je croyais qu’il disait de mettre la virgule dans la comparaison.

Merci pour l’aide, et désolé j’ai été un peu bête sur le coup.