convertUnsignedUnicodeNumToNumber()
이 함수는 sysLib.convertUnicodeNumToNumber()에 대한 보완으로 부호 없는 형식의 COBOL 변수에 대한 EGL 지원을 제공합니다.
이 sysLib.convertUnsignedUnicodeNumToNumber() 시스템 함수는 소스 변수의 숫자(UNICODE 문자를 포함하고 기호 문자는 없음)를 숫자 변수로 변환합니다. 소스는 정수 부분에 선행 제로를 포함할 수 있고 소수 부분에 후미 제로를 포함할 수 있습니다. 10진수 문자는 포함되지 않습니다.
구문
sysLib.convertUnsignedUnicodeNumToNumber(
source UNICODE in,
target SMALLINT | INT | BIGINT | DECIMAL | NUM out] )
- source
- 숫자와 선행 기호 문자를 포함하는 UNICODE 변수입니다.
- target
- 부동 소수점 숫자가 아닌 변수입니다.
오류 조건
UNICODE 변수의 컨텐츠가 올바른 형식이 아닌 경우
함수가 TypeConversionException을 예외 처리(throw)합니다. 다음 형식 오류로
인해 예외가 발생합니다.
- 임의의 위치에 숫자가 아닌 항목이 있습니다.
- 길이가 대상 크기와 일치하지 않습니다(선행 제로 또는 후미 제로가 필요할 수 있음). UNICODE 숫자 변환에 필요한 길이를 참조하십시오.
예제
n1 smallInt;
u1 unicode(4) = "1234";
//convertUnsignedUnicodeNumToNumber(u1, n1);
// ==>Validation error.. u must have length of 5
n2 smallInt;
u2 unicode(6) = "+01234";
convertUnicodeNumToNumber(u2, n2); // ==> 1234
n3 smallInt;
u3 unicode(5) = "01234";
convertUnsignedUnicodeNumToNumber(u3, n3); // ==> 1234
n4 smallInt;
u4 unicode(5) = "-1234";
try
convertUnsignedUnicodeNumToNumber(u4, n4);
// ==> Type conversion exception, - not decimal digit
onException(ex AnyException)
SysLib.writeStdout(ex.message);
end
n5 int;
u5 unicode(11) = "+0123456789";
convertUnicodeNumToNumber(u5, n5); // ==> 123456789
n6 int;
u6 unicode(10) = "0123456789";
convertUnsignedUnicodeNumToNumber(u6, n6); // ==> 123456789
n7 bigInt;
u7 unicode(20) = "-0000000001234567890";
convertUnicodeNumToNumber(u7, n7); // ==> -1234567890
n8 bigInt;
u8 unicode(19) = "0000000001234567890";
convertUnsignedUnicodeNumToNumber(u8, n8); // ==> 1234567890
n9 bin(18, 9);
u9 unicode(19) = "0000123456123400000";
convertUnsignedUnicodeNumToNumber(u9, n9);
// ==> 123456.123400000
n10 decimal(31, 4);
u10 unicode(32) = "+1234567890123456789012345678901";
convertUnicodeNumToNumber(u10, n10);
// ==> 123456789012345678901234567.8901
n11 decimal(31, 4);
u11 unicode(31) = "1234567890123456789012345678901";
convertUnsignedUnicodeNumToNumber(u11, n11);
// ==> 123456789012345678901234567.8901
n12 num(32, 4);
// ==> Validation error for COBOL environments,
//which do not support 32 digit numbers
u12 unicode(33) = "+01234567890123456789012345678901";
convertUnicodeNumToNumber(u12, n12);
// ==> 1234567890123456789012345678.901 for Java environments
n13 num(32, 4); // ==> Validation error for COBOL environments,
//which do not support 32 digit numbers
u13 unicode(32) = "012345678901234567890123456789012";
convertUnsignedUnicodeNumToNumber(u13, n13);
// ==> 1234567890123456789012345678.9012 for Java environments
n14 decimal(8, 4);
u14 unicode(9) = "01234.123";
try
convertUnsignedUnicodeNumToNumber(u14, n14);
// ==> TypeConversionException, "." not valid numeric character
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
n15 decimal(8, 4);
u15 unicode(9) = "01234123 ";
try
convertUnsignedUnicodeNumToNumber(u15, n15);
// ==> TypeConversionException, " " (blank at end)
//not valid numeric character
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
호환성 고려사항
| 플랫폼 | 문제 |
|---|---|
| JavaScript 생성 | sysLib.convertUnicodeNumToNumber() 함수는 지원되지 않습니다. |