convertUnsignedUnicodeNumToNumber()

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.

Syntax

  sysLib.convertUnsignedUnicodeNumToNumber(
    Quelle UNICODE in,
    Ziel SMALLINT | INT | BIGINT | DECIMAL | NUM out] )
Quelle
Eine UNICODE-Variable, die Ziffern und kein Vorzeichen enthält.
Ziel
Eine beliebige numerische Variable mit Ausnahme von Gleitkommavariablen.

Fehlerbedingungen

Wenn der Inhalt der UNICODE-Variablen nicht im ordnungsgemäßen Format vorliegt, löst die Funktion eine Ausnahmebedingung vom Typ 'TypeConversionException' aus. Diese Ausnahmebedingung wird von folgenden Formatfehlern ausgelöst:

Beispiele

  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

Hinweise zur Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität
Plattform Problem
JavaScript-Generierung Die Funktion 'sysLib.convertUnsignedUnicodeNumToNumber()' wird nicht unterstützt.

Feedback