convertUnicodeNumToNumber()
sysLib.convertUnicodeNumToNumber() 함수는 NATIONAL SIGN IS LEADING, SEPARATE 형식의 COBOL 변수에 대한 EGL 지원을 제공합니다.
이 형식의 변수는 다음과 같이 선행 기호 문자와 함께 UNICODE
문자(NATIONAL)를 포함합니다.
15 UNICODENUMBER PIC S9(11)V9(04) USAGE NATIONAL SIGN IS LEADING, SEPARATE.
sysLib.convertUnicodeNumToNumber() 시스템 함수는 UNICODE 기호 문자가 앞에 있는 UNICODE 문자를 포함하는 소스 변수의 숫자를 숫자 변수로 변환합니다. 소스는 정수 부분에 선행 제로를 포함할 수 있고 소수 부분에 후미 제로를 포함할 수 있습니다.
구문
sysLib.convertUnicodeNumToNumber(
source UNICODE in,
target SMALLINT | INT | BIGINT | DECIMAL out] )
- source
- 숫자와 선행 기호 문자를 포함하는 UNICODE 변수입니다.
- target
- 부동 소수점 숫자가 아닌 변수입니다.
오류 조건
UNICODE 변수의 컨텐츠가 올바른 형식이 아닌 경우
함수가 TypeConversionException을 예외 처리(throw)합니다. 다음 형식 오류로
인해 예외가 발생합니다.
- 첫 번째 위치에 기호 문자가 없습니다.
- 첫 번째 위치 이외의 위치에 숫자가 아닌 항목이 있습니다.
- 길이가 대상 크기와 일치하지 않습니다(선행 제로 또는 후미 제로가 필요할 수 있음). UNICODE 숫자 변환에 필요한 길이를 참조하십시오.
예제
n SMALLINT;
u UNICODE(4) = "1234";
// function gets validation error
// u must have length of 6
convertUnicodeNumToNumber(u, n);
n BIGINT;
u UNICODE(20) = "-0000000001234567890";
// function sets n to -1234567890
convertUnicodeNumToNumber(u, n);
n DECIMAL(31,4);
u UNICODE(32) = "+1234567890123456789012345678901";
// function sets n to 123456789012345678901234567.8901
convertUnicodeNumToNumber(u, n);
// Next line gets validation error for COBOL
// NUM variables are limited to length 31 for COBOL
n NUM(32,4);
u UNICODE(33) = "+012345678901234567890123456789012";
// for Java, function sets n to
// 1234567890123456789012345678.9012
convertUnicodeNumToNumber(u, n);
n DECIMAL(8,4);
u UNICODE(10) = "0123456789";
// function throws TypeConversionException
// "0" not valid sign character
convertUnicodeNumToNumber(u, n);
호환성 고려사항
| 플랫폼 | 문제 |
|---|---|
| JavaScript 생성 | sysLib.convertUnicodeNumToNumber() 함수는 지원되지 않습니다. |