fonction de comparaison de nombre qui bug

Jean françois
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 14:07

Boujour a tous!
Voila j'ai fait une fonction en javascript qui compare 2 nombre qui sont passé en parametre.Mais lors qu'un des nombre n'est pas dans la même "decade" qui l'autre et bien la comparaison je donne n'importe quoi,par eexmple : 200<10 ou 20>600
Voici mon code :
function comparer(Ac,Ti) 
{	
	
	if (Ac > Ti)
	{
		alert("Ac:"+Ac+">Ti:"+Ti);
		return false;
	}
	else if (Ac < Ti)
	{	
		alert("Ac:"+Ac+"<Ti:"+Ti);
		return true;
	}
	else
	{
		return true;
	}
}	
Merci d'avance!!

Mammouth du PHP | 1353 Messages

30 mai 2006, 14:24

Lorsque tu appelles ta fonction tu lui passe bien des chiffres et non une chaine de caractère ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2006, 14:25

C'est parce que Javascript récupére des chaines de caractères et, comme il n'y a pas de typage, il compare des chaines de caractères.

Pour résoudre ce problème, il te faut forcer le transtypage des données que tu récupères.
function comparer(Ac,Ti)
{    
    Ac = Ac.toInt();
    Ti = Ti.toInt();

    if (Ac > Ti)
    {
        alert("Ac:"+Ac+">Ti:"+Ti);
        return false;
    }
    else if (Ac < Ti)
    {    
        alert("Ac:"+Ac+"<Ti:"+Ti);
        return true;
    }
    else
    {
        return true;
    }
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

jean françois
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 14:43

Snif marche pas!
J'ai essayer avec parseint ça marche pas non plus! :cry:

jean françois
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 15:04

C'est bon merci à tous !ça marche avec parseInt!!
Resolu :!: :!: