Numerische Datentypen (Visual Basic)
Visual Basic stellt mehrere numerische Datentypen für die Behandlung von Zahlen in verschiedenen Darstellungen bereit. Integrale Typen stellen nur ganze Zahlen (positive, negative und null (0)) dar, und nichtintegrale Typen stellen Zahlen mit ganzzahligen und Bruchteilen dar.
Eine Tabelle mit einer Gegenüberstellung der Visual Basic-Datentypen finden Sie unter Datentypen.
Integrale numerische Typen
Integrale Datentypen sind Typen, die nur Zahlen ohne Bruchteile darstellen.
Die integralen Datentypen mit Vorzeichen sind SByte-Datentyp (8 Bit), Short-Datentyp (16 Bit), Integer-Datentyp (32 Bit) und Long-Datentyp (64 Bit). Wenn eine Variable immer ganze Zahlen anstelle von Bruchzahlen speichert, deklarieren Sie sie als einen dieser Typen.
Die integralen Typen ohne Vorzeichen sind Byte-Datentyp (8 Bit), UShort-Datentyp (16 Bit), UInteger-Datentyp (32 Bit) und ULong-Datentyp (64 Bit). Wenn eine Variable Binärdaten oder Daten unbekannter Art enthält, deklarieren Sie sie als einen dieser Typen.
Leistung
Arithmetische Operationen sind bei integralen Typen schneller als bei anderen Datentypen. Sie sind mit den Integer
- und UInteger
-Typen in Visual Basic am schnellsten.
Große ganze Zahlen
Wenn Sie eine ganze Zahl aufnehmen müssen, die größer ist, als der Integer
-Datentyp enthalten kann, können Sie stattdessen den Long
-Datentyp verwenden. Long
-Variablen können Zahlen von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 enthalten. Vorgänge mit Long
sind etwas langsamer als mit Integer
.
Wenn Sie noch größere Werte benötigen, können Sie den Decimal-Datentyp verwenden. Sie können Zahlen von -79.228.162.514.264.337.593.543.950.335 bis 79.228.162.514.264.337.593.543.950.335 in einer Decimal
-Variablen aufnehmen, wenn Sie keine Dezimalstellen verwenden. Operationen mit Decimal
-Zahlen sind jedoch erheblich langsamer als bei jedem anderen numerischen Datentyp.
Kleine ganze Zahlen
Wenn Sie nicht den vollständigen Bereich des Integer
-Datentyps benötigen, können Sie den Short
-Datentyp verwenden, der ganze Zahlen zwischen -32.768 und 32.767 enthalten kann. Für den kleinsten Ganzzahlbereich enthält der SByte
-Datentyp ganze Zahlen von -128 bis 127. Wenn Sie über eine sehr große Anzahl von Variablen verfügen, die kleine ganze Zahlen enthalten, kann die Common Language Runtime ihre Short
- und SByte
-Variablen manchmal effizienter speichern und den Arbeitsspeicherverbrauch begrenzen. Operationen mit Short
und SByte
sind jedoch etwas langsamer als mit Integer
.
Ganze Zahlen ohne Vorzeichen
Wenn Sie wissen, dass Ihre Variable niemals eine negative Zahl enthalten muss, können Sie die Typen ohne VorzeichenByte
, UShort
, UInteger
und ULong
verwenden. Jeder dieser Datentypen kann eine positive ganze Zahl enthalten, die doppelt so groß ist wie der entsprechende Typ mit Vorzeichen (SByte
, Short
, Integer
und Long
). In Bezug auf die Leistung ist jeder Typ ohne Vorzeichen genau so effizient wie der entsprechende Typ mit Vorzeichen. Insbesondere teilt sich UInteger
mit Integer
das Unterscheidungsmerkmal, der effizienteste aller elementaren numerischen Datentypen zu sein.
Nicht integrale numerische Typen
Nicht integrale Datentypen sind diejenigen, die Zahlen mit ganzzahligen und Bruchteilen darstellen.
Die nicht integralen numerischen Datentypen sind Decimal
(128-Bit-Festkomma), Single-Datentyp (32-Bit-Gleitkomma) und Double-Datentyp (64-Bit-Gleitkomma). Sie sind alle Typen mit Vorzeichen. Wenn eine Variable einen Bruch enthalten kann, deklarieren Sie sie als einen dieser Typen.
Decimal
ist kein Gleitkommadatentyp. Decimal
-Zahlen weisen einen binären ganzzahligen Wert und einen ganzzahligen Skalierungsfaktor auf, der angibt, welcher Teil des Werts ein Dezimalbruch ist.
Sie können Decimal
-Variablen für Geldwerte verwenden. Der Vorteil ist die Genauigkeit der Werte. Der Double
-Datentyp ist schneller und benötigt weniger Arbeitsspeicher, unterliegt jedoch Rundungsfehlern. Der Decimal
-Datentyp behält die vollständige Genauigkeit bis zu 28 Dezimalstellen bei.
Gleitkommazahlen (Single
und Double
) haben größere Bereiche als Decimal
-Zahlen, können jedoch Rundungsfehlern unterliegen. Gleitkommatypen unterstützen weniger signifikante Ziffern als Decimal
, können jedoch Werte von größerem Ausmaß darstellen.
Nicht integrale Zahlenwerte können als mmmEeee ausgedrückt werden, wobei mmm die Mantisse (die signifikanten Ziffern) und eee der Exponent ist (eine 10er-Potenz). Die höchsten positiven Werte der nicht integralen Typen sind 7,9228162514264337593543950335E+28 für Decimal
, 3,4028235E+38 für Single
und 1,79769313486231570E+308 für Double
.
Leistung
Double
ist der effizienteste der Bruchdatentypen, da die Prozessoren auf aktuellen Plattformen Gleitkommaoperationen mit doppelter Genauigkeit ausführen. Operationen mit Double
sind jedoch nicht so schnell wie mit den integralen Typen wie Integer
.
Kleine Größenordnungen
Für Zahlen mit der kleinsten möglichen Größenordnung (am nächsten zu 0) können Double
-Variablen Zahlen enthalten, die so klein sind wie -4,94065645841246544E-324 für negative Werte und 4,94065645841246544E-324 für positive Werte.
Kleine Bruchzahlen
Wenn Sie nicht den vollständigen Bereich des Double
-Datentyps benötigen, können Sie den Single
-Datentyp verwenden, der Gleitkommazahlen von -3,4028235E+38 bis 3,4028235E+38 enthalten kann. Die kleinsten Größenordnungen für Single
-Variablen sind -1,401298E-45 für negative Werte und 1,401298E-45 für positive Werte. Wenn Sie über eine sehr große Anzahl von Variablen verfügen, die kleine Gleitkommazahlen enthalten, kann die Common Language Runtime ihre Single
-Variablen manchmal effizienter speichern und den Arbeitsspeicherverbrauch begrenzen.