convertNumberToUnicodeNum()

이 함수는 NATIONAL SIGN IS LEADING, SEPARATE 형식의 COBOL 변수에 대한 EGL 지원을 제공합니다. 이 변수는 다음과 같이 선행 기호 문자와 함께 UNICODE 문자(NATIONAL)를 포함하는 변수입니다.
15  UNICODENUMBER PIC S9(11)V9(04) USAGE NATIONAL SIGN IS LEADING, SEPARATE.

sysLib.convertNumberToUnicodeNum() 시스템 함수는 소스 숫자 값의 숫자를 UNICODE 기호 문자가 앞에 있는 UNICODE 문자로 변환합니다. 선행 제로는 정수 파트에 포함되고 후미 제로는 소수 부분에 포함되며 10진수 문자는 포함되지 않습니다.

구문

  sysLib.convertNumberToUnicodeNum(
    source SMALLINT | INT | BIGINT | DECIMAL in,
    target UNICODE out] )
source
부동 소수점 숫자가 아닌 변수입니다.
target
UNICODE 변수입니다.

UNICODE 숫자 변환에 필요한 길이

UNICODE 변수의 필수 길이는 숫자 필드의 데이터 유형 스펙과 변환이 부호 있는 변환인지 또는 부호 없는 변환인지 여부에 따라 다릅니다. 유효성 검증을 수행하면 필수 길이를 사용하는지 확인할 수 있습니다. NUM과 DECIMAL의 경우 부호 있는 변환을 수행할 때 홀수 길이와 짝수 길이 모두 다음으로 높은 짝수 길이로 승격됩니다. 이 방식으로 NUM(10) 또는 NUM(11) 변수를 부호 있는 UNICODE 변수로 변환하는 경우 UNICODE(12) 변수가 필요합니다.

표 1. 숫자 유형의 필수 UNICODE 변수 길이
숫자 데이터 유형 UNICODE 숫자 길이(부호 있는 변환) UNICODE 숫자 길이(부호 없는 변환)
SMALLINT, BIN(4,x) 6 5
INT, BIN(9,x) 11 10
BIGINT, BIN(18,x) 20 19
NUM(x, y) 또는 DECIMAL(x, y), 여기서 x는 1과 31 사이의 홀수 x+1 x
NUM(x, y) 또는 DECIMAL(x, y), 여기서 x는 0과 30 사이의 짝수 x+2 x+1
NUM(32,y), DECIMAL(32,y) 33 32

예제

  n SMALLINT = 1234;
  u UNICODE(4);
  // function gets validation error 
  // u must have length of 6
  convertNumberToUnicodeNum(n, u);
  
  n SMALLINT = 1234;
  u UNICODE(6);
  // function sets u to "+001234"
  convertNumberToUnicodeNum(n, u);

  n INT = 123456789;
  u UNICODE(11);
  // function sets u to
  // "+0123456789"
  convertNumberToUnicodeNum(n, u);

  n BIGINT = -1234567890;
  u UNICODE(20);
  // function sets u to
  // "-0000000001234567890"
  convertNumberToUnicodeNum(n, u);

  n BIN(18, 9) = -123456.1234;
  u UNICODE(20);
  // function sets u to
  // "-0000123456123400000"
  convertNumberToUnicodeNum(n, u);

  n DECIMAL(31, 4) = 123456789012345678901234567.8901;
  u UNICODE(32);
  // function sets u to
  // "+1234567890123456789012345678901"
  convertNumberToUnicodeNum(n, u);

  // Next line gets validation error for COBOL
  // NUM variables are limited to length 31 for COBOL
  n NUM(32, 4) = 1234567890123456789012345678.9012;
  u UNICODE(33);
  // for Java, function sets u to
  // "+012345678901234567890123456789012"
  convertNumberToUnicodeNum(n, u);

호환성 고려사항

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