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
Auteur
Réponse acceptée

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 :)

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 :/