![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Très honnêtement, je n'ai aucune idée de l'intention de l'OP.
Si on le prend comme une demande générale : "Comment vérifier si le contenu d'une variable est numérique ?", la solution la plus élégante est d'utiliser une expression régulière.
Et en voici un autre qui semble plus complet (à la toute fin de la page) :
Honnêtement, je n'ai aucune idée de l'intention de l'OP
Si nous le prenons comme une demande générale : "Comment vérifier si le contenu d'une variable est numérique ?", la solution la plus élégante est d'utiliser une expression régulière.
Merci à vous tous @ whroeder1, honest_knave, Ernst Van Der Merwe, Alain Verleyen et Fernando Carreiro.
Donc :
Par exemple
{
StringReplace(text," ",NULL);
StringReplace(text,",",NULL);
int point_cnt = 0;
for(int i=StringLen(text)-1; i>=0; i--)
{
int this_char = StringGetChar(text,i);
if(this_char == '.')
{
point_cnt++;
if(point_cnt>1) return(false);
if(StringLen(text)<2) return(false);
}
else if(this_char == '+' || this_char == '-')
{
if(i>0) return(false);
}
else if(this_char < '0' || this_char > '9') return(false);
}
return(true);
}
Si le résultat est vrai, vous pouvez convertir la chaîne en un nombre.
Donc :
Par exemple
{
StringReplace(text," ",NULL);
StringReplace(text,",",NULL);
int point_cnt = 0;
for(int i=StringLen(text)-1; i>=0; i--)
{
int this_char = StringGetChar(text,i);
if(this_char == '.')
{
point_cnt++;
if(point_cnt>1) return(false);
if(StringLen(text)<2) return(false);
}
else if(this_char == '+' || this_char == '-')
{
if(i>0) return(false);
}
else if(this_char < '0' || this_char > '9') return(false);
}
return(true);
}
Si le résultat est vrai, vous pouvez convertir la chaîne en un nombre.