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);

호환성 고려사항

표 1. 호환성 고려사항
플랫폼 문제
JavaScript 생성 sysLib.convertUnicodeNumToNumber() 함수는 지원되지 않습니다.