Déterminer si la valeur d'un champ est un nombre entier ou décimal

Par Alexandre #lbac, il y a 10 ans


Bonsoir à tous,

Je me tourne vers vous car je suis confronté à un petit soucis. J'ai besoin de déterminer si la valeur d'un champ de formulaire est de forme décimale ou entier. Cependant par défaut les valeurs récupérées par la superglobale $_POST ne seront jamais des entiers ou des des décimaux à cause des guillements.

Comment pourrais-je remédier à celà ?

Ce bout de code :

function set_decimal($numeric) { if( !is_int($numeric) ) { list($number, $decimal) = explode('.', $numeric); if( $decimal != NULL ) { return $number . '.' . $decimal; } } return $numeric . '.00'; }

ne fonctionnera jamais car dans tous les cas mon nombre ne sera jamais de forme integer mais de forme string :/

Une idée ?

3 réponses

Alexandre #lbac, il y a 10 ans

Merci mais je me suis déjà renseigné sur pas mal de fonctions et je veux faire la différence entre 42 et 42.5 or is_numeric ne fait pas la différence, de plus cette fonction me retournerait FALSE pour les deux de par le formulaire qui ne me retourne que des chaînes de caractères :/

Alexandre #lbac, il y a 10 ans

Pour information j'ai testé les fonctions is_float, is_int et etc mais là n'est pas mon soucis.

EDIT : Forcément en regardant encore un coup je trouve la réponse, la fonction floatval a tout prévu :)