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

호환성 고려사항

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