JSL 기능 또는 버그?더 큰 문자열의 하위 문자열이 숫자를 나타내는지 여부를 아는 데 의존하는 함수가 있으며 단순히 Num() 명령의 결과를 사용합니다. 누락된 값을 반환하면 하위 문자열이 숫자를 나타내지 않는다고 가정합니다 .
그러나 사용자는 Num() 명령이 리터럴 "R" 앞에 오는 숫자에 완벽하게 만족한다는 사실을 근본 원인으로 하는 버그를 지적했습니다.
누구든지 이것을 기능이나 버그로 알고 있습니까?스크립팅 인덱스를 살펴보려고 했지만 이에 대한 적절한 쿼리가 생각나지 않습니다.
감사 해요!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
스크립팅Re: JSL 기능 또는 버그?통화, 아마도. 조심해야 할 이상한 경우가 많이 있습니다 ...
숫자("$5")
5
num("2000년 1월 1일")
3029529600
숫자("5%")
0.05
asdate(num("1/1"))
2001년 1월 1일
Re: JSL 기능 또는 버그?주의해야 할 경우가 많다는 것을 알고 있습니다. 그러나 특히 표준 문자에만 관심이 있고 "R"은 여기에서 유일한 예입니다.다른 프로그래밍 언어에서는 잘 문서화되거나 버그로 간주되지만(문서에 명시적으로 나열되지 않은 모든 동작은 버그임) JMP는 해당 수준의 문서가 아니므로 아마도 숨겨진 기능일 것입니다.
Re: JSL 기능 또는 버그?화폐는 가능성이 있어 보이지만 이것이 기능인지 여부를 실제로 알 수 없습니다. 그렇다면 여러 다른 위치에서 더 나은 문서가 확실히 필요합니다.번호가 무엇인지 이미 알고 있다면 ~해야한다 해당 데이터에 대한 자체 유효성 검사 함수를 작성하는 것이 더 나을 수도 있지만 '1/1'과 같은 것이 1월 1일로 해석되는 것을 방지하는 것으로 나타났습니다. 물론 여러 언어를 다루면 더 어려워집니다..
num_validated = function({v}, {r=.},
if( //Make sure anything with odd characters is missing
is missing(regex(v,"^[0-9\.\,]+$")),
r = .,
//try to interpret everything else using 'num':
r = num( v );
);
r;
);
show(
num_validated("1"),
num_validated("1.0"),
num_validated("R1"),
num_validated("1,000")
);Re: JSL 기능 또는 버그?JMP의 문서 및 개발 팀에 메모를 보냈습니다. 감사 해요!
Re: JSL 기능 또는 버그?모두 인사드립니다. JMP 17 기간 동안 이 문제에 대해 일부 작업이 완료된 것 같습니다. 특히, 유효한 숫자로 간주되는 것을 제어하는 데 도움이 되도록 Num() 및 Informat()에 추가 인수가 추가되었습니다. 모든 JMP 17 EA7(또는 이후 버전) 사용자는 지금 이것을 사용해 볼 수 있습니다. 나머지는 2022년 가을에 JMP 17을 사용할 수 있을 때까지 기다려야 합니다. 신고해 주셔서 감사합니다! 우리는 이러한 포럼을 모니터링하고 가능한 경우 이와 같은 문제를 해결하기 위해 노력합니다.
Re: JSL 기능 또는 버그?@오드리_셜
문자로 가져온 열에 문제가 있었습니다.
나는 눈으로 숫자가 아닌 것은 아무것도 볼 수 없었다.
그러나 숫자로 만들면 대부분의 값이 사라졌습니다. (JMP 16.2 Pro 포함)
그러나 JMP 17EA를 사용하면 값이 사라지지 않고 문자에서 숫자로 바로 변환할 수 있습니다.
그래서 거기에 약간의 진전이 있었습니다.
도움이 되기를 바랍니다!
벤