comparaison de chaine mais de nombre :-/ - Perl - Programmation
Marsh Posté le 24-04-2004 à 22:08:29
Perl sait convertir automatiquement une chaine en un nombre si ce string "ressemble" à un nombre, et donc il saura utiliser un comparateur <=> sur des chaines representant des nombres, mais ca n'est pas le cas ici: "1.2.1" ca ne ressemble pas à un nombre...
Par contre tu peux customiser un peu ta fonction de comparaison pour que ca marche:
Code :
|
ici on supprime les "." en remplacant chaque partie par un nombre à deux chiffres
par exemple 1.2.10 => 010210
et ensuite on peut faire la comparaison (avec cmp ou <=> d'ailleurs)
Marsh Posté le 22-04-2004 à 10:52:28
Je voudrais comparer deux chaines de caracteres en tant que nombre mais lorque j'utilise le "<=>" il me dit que ce n'est pas numérique (normal vu que c'est une chaine). Mais lorsque j'utilise la comparaison avec "cmp", il ne compare pas correctement.
Explicitons :
Ca c'est mon code:
A l'affichage on, obtient:
Alors que j'aimerais obtenir:
Avez vous une astuce ?
Merci d'avance !