MathIsValidNumber는 그런 식으로 작동하지 않습니다. "4" 또는 "FOUR" 또는 "vier" 또는 "quatre" 또는 "quatro"보다 더 이상 "4"를 4로 이해하지 않습니다.
"Four"를 double로 캐스팅하면 결과는 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이 유효한 숫자라는 데 동의하십니까?
그래서 내 대답의 어떤 부분을 이해하지 못합니까?
내가 "sdgfjhsdfkjdshfkjsfdhskdjh"로 번호를 만들라고 하면 어떤 번호를 주시겠습니까?
if ( MathIsValidNumber ( ObjectGetString ( 0 , "SimultaneousReleaseIndex" , OBJPROP_TEXT ))== true ){ Print ( "Object Text Is Numeric" );}