この関数は、sysLib.convertUnicodeNumToNumber() の補数としての、符号なしフォーマットの COBOL 変数に対する EGL サポートを提供します。
この sysLib.convertUnsignedUnicodeNumToNumber() システム関数は、ソース変数 (符号文字以外の UNICODE 文字を含む) の数字を、数値変数に変換します。ソースの整数部分には先行ゼロを、小数部分には後続ゼロを組み込むことができます。 小数点文字は含まれません。
sysLib.convertUnsignedUnicodeNumToNumber(
source UNICODE in,
target SMALLINT | INT | BIGINT | DECIMAL | NUM out] )
n1 smallInt;
u1 unicode(4) = "1234";
//convertUnsignedUnicodeNumToNumber(u1, n1);
// ==> 検証エラー.. 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);
// ==> 型変換の例外。- は小数桁ではありません
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);
// ==> COBOL 環境の場合は検証エラー。
//COBOL 環境では 32 桁の数値をサポートしていません
u12 unicode(33) = "+01234567890123456789012345678901";
convertUnicodeNumToNumber(u12, n12);
// ==> Java 環境の場合は 1234567890123456789012345678.901
n13 num(32, 4); // ==> COBOL 環境の場合は検証エラー。
//COBOL 環境では 32 桁の数値をサポートしていません
u13 unicode(32) = "012345678901234567890123456789012";
convertUnsignedUnicodeNumToNumber(u13, n13);
// ==> Java 環境の場合は 1234567890123456789012345678.9012
n14 decimal(8, 4);
u14 unicode(9) = "01234.123";
try
convertUnsignedUnicodeNumToNumber(u14, n14);
// ==> TypeConversionException, "." 有効な数字ではありません
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
n15 decimal(8, 4);
u15 unicode(9) = "01234123 ";
try
convertUnsignedUnicodeNumToNumber(u15, n15);
// ==> TypeConversionException, " " (末尾にブランク)
//有効な数字ではありません
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
| プラットフォーム | 問題 |
|---|---|
| JavaScript 生成 | 関数 sysLib.convertUnicodeNumToNumber() はサポートされていません。 |