MathIsValidNumber не работает таким образом. Он не поймет "Four" как 4 больше, чем "four" или "FOUR" или "vier" или "quatre" или "quatro".
Если вы переведете "Four" в двойное число, результатом будет 0.
Поскольку 0 является допустимым числом, ваша функция возвращает true.
Если вы хотите добиться этого, вам придется встроить свои собственные преобразования слов в числа.
Ваш компилятор должен был предупредить вас о неявном преобразовании ... есть ли у вас
в верхней части вашего кода?
MathIsValidNumber не работает таким образом. Он не поймет "Four" как 4 больше, чем "four" или "FOUR" или "vier" или "quatre" или "quatro".
Если вы переведете "Four" как двойку, результатом будет 0.
Поскольку 0 является допустимым числом, ваша функция возвращает true.
Если вы хотите добиться этого, вам придется встроить свои собственные преобразования слов в числа.
Ваш компилятор должен был предупредить вас о неявном преобразовании ... есть ли у вас
в верхней части вашего кода?
Я думаю, вы не поняли ответ.
Если вы засунете строку типа "Four" или "banana" или "MetaQuotes" в двойку, результатом будет 0.
0 - это допустимое число.
Если бы вы использовали #property strict, ваш компилятор предупредил бы вас об этом.
Вы можете проверить, что "число" не равно 0, но вы не можете отследить, было ли оно намеренно введено как 0, или оно просто было преобразовано в 0 при преобразовании.
double as_double = (double) ObjectGetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT);
if(as_double !=0 && MathIsValidNumber(as_double)) Print("Object Text Is Numeric");
Я думаю, вы не поняли ответ.
Если вы засунете строку типа "Four" или "banana" или "MetaQuotes" в двойку, результатом будет 0.
0 - это допустимое число.
Если бы вы использовали #property strict, ваш компилятор предупредил бы вас об этом.
Пожалуйста, прочитайте мой пост еще раз.
Согласны ли вы с тем, что 0 - это действительное число?
Пожалуйста, прочитайте мой пост еще раз.
Согласны ли вы с тем, что 0 - это действительное число?
Конечно, 0 является допустимым числом
Так какой части моего ответа вы не поняли?
Повторю еще раз:
Если вы переведете "Four" в двойное число, результатом будет 0.
Поскольку 0 является допустимым числом, ваша функция возвращает true.
Если вы вгоняете строку типа "Four" или "banana" или "MetaQuotes" в двойку, результатом будет 0.
0 - это допустимое число.
Так какую часть моего ответа вы не поняли?
Если я скажу, что нужно составить число из "sdgfjhsdfkjdshfkjsfdhskdjh", какое число вы мне дадите?
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
if (MathIsValidNumber(ObjectGetString(0,"SimultaneousReleaseIndex",OBJPROP_TEXT))==true){Print("Object Text Is Numeric");}