Diese Funktion bietet EGL-Unterstützung für COBOL-Variablen im Format ohne Vorzeichen als Komplementärfunktion zu 'sysLib.convertUnicodeNumToNumber()'.
Die Systemfunktion 'sysLib.convertUnsignedUnicodeNumToNumber()' konvertiert die Ziffern einer Quellenvariablen (mit UNICODE-Zeichen ohne Vorzeichen) in eine numerische Variable. Die Quelle kann führende Nullen für den ganzzahligen Teil und nachfolgende Nullen für den Bruchteil enthalten. Es sind keine Dezimalzeichen eingeschlossen.
sysLib.convertUnsignedUnicodeNumToNumber(
Quelle UNICODE in,
Ziel SMALLINT | INT | BIGINT | DECIMAL | NUM out] )
n1 smallInt;
u1 unicode(4) = "1234";
//convertUnsignedUnicodeNumToNumber(u1, n1);
// ==>Gültigkeitsfehler.. 'u' muss eine Länge von 5 haben
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);
// ==> Ausnahmebedingung für Typenkonvertierung, - ist keine Dezimalstelle
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);
// ==> Gültigkeitsfehler für COBOL-Umgebungen,
//die keine 32-stelligen Zahlen unterstützen
u12 unicode(33) = "+01234567890123456789012345678901";
convertUnicodeNumToNumber(u12, n12);
// ==> 1234567890123456789012345678.901 für Java-Umgebungen
n13 num(32, 4); // ==> Gültigkeitsfehler für COBOL-Umgebungen,
//die keine 32-stelligen Zahlen unterstützen
u13 unicode(32) = "012345678901234567890123456789012";
convertUnsignedUnicodeNumToNumber(u13, n13);
// ==> 1234567890123456789012345678.9012 für Java-Umgebungen
n14 decimal(8, 4);
u14 unicode(9) = "01234.123";
try
convertUnsignedUnicodeNumToNumber(u14, n14);
// ==> TypeConversionException, "." ist kein gültiges numerisches Zeichen
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
n15 decimal(8, 4);
u15 unicode(9) = "01234123 ";
try
convertUnsignedUnicodeNumToNumber(u15, n15);
// ==> TypeConversionException, " " (Leerzeichen am Ende)
//ist kein gültiges numerisches Zeichen
onException (ex AnyException)
SysLib.writeStdout(ex.message);
end
| Plattform | Problem |
|---|---|
| JavaScript-Generierung | Die Funktion 'sysLib.convertUnsignedUnicodeNumToNumber()' wird nicht unterstützt. |