Create a boolean function which takes in a string and tells whether it is a numeric string (floating point and negative numbers included) in the syntax the language uses for numeric literals or numbers converted from strings. The first file is the package interface containing the declaration of the Is_Numeric function. The second file is the...
正直なところ、OPの意図するところがよくわかりません。
もし、「変数の中身が数値かどうかを調べるにはどうしたらいいか」という一般的な要望だとすると、最もエレガントな解決策は、正規表現を使うことです。
そして、より完全と思われるのがこちら(ページの一番最後にあります)。
正直なところ、私はOPの意図が全くわかりません。 もし、一般的な要求、つまり「変数の内容が数値かどうかを調べるにはどうしたらいいか」 と考えるなら、最もエレガントな解決策は正規表現を使うことでしょう。
皆さん@ whroeder1、honest_knave、Ernst Van Der Merwe、Alain Verleyen、Fernando Carreiroに感謝します。
だから
例
{
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);
}
trueを返したら、その文字列を数値に変換することができます。
だから
例
{
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);
}
trueを返したら、その文字列を数字に変換することができます。