honest_knave:
質問を理解していなかったようです。私は上のコードを書きましたが、"Four "は数字ではないので、コンパイラはfalseを返すと予想されます。しかし、これは真を返しています("Four "は数字であるという意味)。どうすれば適切にコーディングできるのでしょうか?私は "Four "を数字に変換せよと言っているのではありません。
MathIsValidNumberはそのように動作しません。それは "Four "を "4 "や "FOUR"、"vier"、"quatre"、"quatro "よりも4として理解しないでしょう。
もし "Four "をダブルとしてキャストすれば、結果は0になります。
0は有効な数なので、この関数は 真を返します。
もしこれを実現したいのであれば、単語から数値への変換を独自に組み込む必要があります。
コンパイラは暗黙の変換について警告しているはずですが・・・。
#property strict
をコードの先頭につけていますか?
答えを理解していないようですね
Four" や "banana" や "MetaQuotes" といった文字列を double に入れると、結果は 0 になります。
0は有効な数字です。
もしあなたが#property strictを使っていたら、コンパイラーはこの問題について警告したことでしょう。
数値」が0でないことをテストすることはできますが、意図的に0と入力されたのか、それともキャストの際に0に変換されただけなのかを判断することはできません。
ObjectSetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT,"Four");
double as_double = (double) ObjectGetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT);
if(as_double !=0 && MathIsValidNumber(as_double)) Print("Object Text Is Numeric");
double as_double = (double) ObjectGetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT);
if(as_double !=0 && MathIsValidNumber(as_double)) Print("Object Text Is Numeric");
honest_knave:
私の最初のコードをもう一度確認して ください。私は少し修正しただけです。本来は 答えを理解していないようですね
Four" や "banana" や "MetaQuotes" といった文字列を double に入れると、結果は 0 になります。
0は有効な数字です。
もしあなたが#property strictを使っていたら、コンパイラーはこの問題について警告したことでしょう。
ObjectSetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT,"Four");
であって ObjectSetInteger(0,"SimultaneousReleaseIndex",OBJPROP_TEXT,"Four");
ご迷惑をおかけして申し訳ありません。あなたの親切な答えを期待しているので、ありがとうございます。私は#property strictを使っていないようです。
私の投稿をもう一度読んでみてください。
0が有効な数字であることに同意しますか?
honest_knave:
もちろん、0は有効な数字です。なぜ聞くのですか?
私の投稿をもう一度読んでみてください。
0が有効な数字であることに同意しますか?
honest_knave:
それで、私の回答のどの部分が理解できないのでしょうか?
しかし、OBJPROP_TEXTは"Four "であり、"0 "ではありません。また、あなたは「Four」を「0」と見なすと言いました、なぜなら... さて、問題は私が「Four」をダブルにプッシュしたかどうかです?私のコードのどの部分が "Four" や "banana" や "Metaquote" をダブルにプッシュしたのでしょうか?
それで、私の回答のどの部分が理解できないのでしょうか?
honest_knave:
もちろん0です。しかし、私が書いたコードに対応する質問は、「sdgfjhsdfkjdshfkjsfdhskdjh」から数字を作れとは言っていない、ということです。しかし、「sdgfjhsdfkjdshfkjsfdhskdjh」が数であるかどうかを判断せよということなのです。だから、「sdgfjhsdfkjdshfkjsfdhskdjh」を数字にすることはできると思うんです。しかし、「sdgfjhsdfkjdshfkjsfdhskdjh」が数字でないことに変わりはないのです。
sdgfjhsdfkjdshkjsfdhskdjh "から数字を作れと言ったら、どんな数字を出すか?

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
if (MathIsValidNumber(ObjectGetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT))==true){Print("Object Text Is Numeric");}