convertNumberToUnsignedUnicodeNum()

この関数は、sysLib.convertNumberToUnicodeNum() の補完として、符号なしフォーマットでの COBOL 変数に対する EGL サポートを提供します。

sysLib.convertNumberToUnsignedUnicodeNum() システム関数は、ソース数値の数字の絶対値を、UNICODE 符号文字のない UNICODE 文字に変換します。 先行ゼロは整数部分に組み込まれ、後続ゼロは小数部分に組み込まれます。小数点文字は組み込まれません。

UNICODE 変数の長さは、数値の長さに対応したものにする必要があります。 UNICODE 変数の必要な長さをリストした表については、UNICODE の数値変換に必要な長さを参照してください。

構文

  sysLib.convertNumberToUnsignedUnicodeNum(
    source SMALLINT | INT | BIGINT | DECIMAL | BIN | NUM in,
    target UNICODE out] )
source
任意の非浮動小数点数値変数。
target
UNICODE 変数。

  n1 SMALLINT = 1234;
  u1 UNICODE(4);
  // 関数で検証エラーが発生
  // u1 には 5 の長さが必要
  convertNumberToUnsignedUnicodeNum(n1, u1);
  
  n2 SMALLINT = 1234;
  u2 UNICODE(5);
  // 関数が u2 を「01234」に設定
  convertNumberToUnsignedUnicodeNum(n2, u2);

  n3 INT = 123456789;
  u3 UNICODE(10);
  // 関数が u3 を
  // 「0123456789」に設定
  convertNumberToUnsignedUnicodeNum(n3, u3);

  n4 BIGINT = -1234567890;
  u4 UNICODE(19);
  // 関数が u4 を
  // 「0000000001234567890」に設定
  convertNumberToUnsignedUnicodeNum(n4, u4);

  n5 BIN(18, 9) = -123456.1234;
  u5 UNICODE(19);
  // 関数が u5 を
  // 「0000123456123400000」に設定
  convertNumberToUnsignedUnicodeNum(n5, u5);

  n6 DECIMAL(31, 4) = 123456789012345678901234567.8901;
  u6 UNICODE(31);
  // 関数が u6 を
  // 「1234567890123456789012345678901」に設定
  convertNumberToUnsignedUnicodeNum(n6, u6);

  // 次の行で COBOL の検証エラーが発生
  // NUM 変数は COBOL の場合 31 の長さに制限
  n7 NUM(32, 4) = 1234567890123456789012345678.9012;
  u7 UNICODE(32);
  // Java の場合、関数が u7 を
  // 「12345678901234567890123456789012」に設定
  convertNumberToUnsignedUnicodeNum(n7, u7);

互換性に関する考慮事項

表 1. 互換性に関する考慮事項
プラットフォーム 問題
JavaScript 生成 関数 sysLib.convertNumberToUnsignedUnicodeNum() はサポートされていません。

フィードバック