Numeric — Typ danych (Visual Basic)

Program Visual Basic udostępnia kilka typów danych liczbowych do obsługi liczb w różnych reprezentacjach. Typy całkowite reprezentują tylko liczby całkowite (dodatnie, ujemne i zero), a typy nieintegralne reprezentują liczby zarówno z częściami całkowitymi, jak i ułamkowych.

Aby zapoznać się z tabelą przedstawiającą porównanie równoległe typów danych języka Visual Basic, zobacz Typy danych.

Typy liczb całkowitych

Typy danych całkowitych to te, które reprezentują tylko liczby bez części ułamkowych.

Podpisane typy danych całkowitych to typ danych SByte (8-bitowy), krótki typ danych (16-bitowy), typ danych całkowitych (32-bitowy) i długi typ danych (64-bitowy). Jeśli zmienna zawsze przechowuje liczby całkowite, a nie liczby ułamkowe, zadeklaruj ją jako jeden z tych typów.

Niepodpisane typy całkowite to typ danych bajtów (8-bitowy), typ danych UShort (16-bitowy), typ danych UInteger (32-bitowy) i typ danych ULong (64-bitowy). Jeśli zmienna zawiera dane binarne lub dane nieznanego charakteru, zadeklaruj ją jako jeden z tych typów.

Wydajność

Operacje arytmetyczne są szybsze w przypadku typów całkowitych niż w przypadku innych typów danych. Są one najszybsze w przypadku Integer typów i UInteger w Visual Basic.

Duże liczby całkowite

Jeśli musisz przechowywać liczbę całkowitą większą niż Integer typ danych, możesz zamiast tego użyć Long typu danych. Long zmienne mogą zawierać liczby od -9 223 372 036 854 775 808 do 923 372 036 854 775 807. Operacje z programem Long są nieco wolniejsze niż w przypadku programu Integer.

Jeśli potrzebujesz jeszcze większych wartości, możesz użyć typu danych dziesiętnych. Można przechowywać liczby z -79,228,162,514,264,337,593,543,950,335 do 79,228,162,514,264,337,593,543,950,335 w zmiennej Decimal , jeśli nie używasz żadnych miejsc dziesiętnych. Jednak operacje z liczbami Decimal są znacznie wolniejsze niż w przypadku dowolnego innego typu danych liczbowych.

Małe liczby całkowite

Jeśli nie potrzebujesz pełnego zakresu Integer danych, możesz użyć Short typu danych, który może zawierać liczby całkowite z zakresu od -32 768 do 32 767. W przypadku najmniejszego zakresu SByte całkowitego typ danych zawiera liczby całkowite z zakresu od -128 do 127. Jeśli masz bardzo dużą liczbę zmiennych, które zawierają małe liczby całkowite, środowisko uruchomieniowe języka wspólnego może czasami przechowywać Short zmienne i SByte wydajniej i zapisywać zużycie pamięci. Jednak operacje z funkcją Short i SByte są nieco wolniejsze niż w przypadku programu Integer.

Niepodpisane liczby całkowite

Jeśli wiesz, że zmienna nigdy nie musi przechowywać liczby ujemnej, możesz użyć niepodpisanych typówByte, UShort, UIntegeri ULong. Każdy z tych typów danych może przechowywać dodatnią liczbę całkowitą dwa razy większą niż odpowiadający mu typ ze znakiem (SByte, Short, Integeri Long). Pod względem wydajności każdy niepodpisany typ jest dokładnie tak wydajny, jak odpowiadający mu typ podpisu. W szczególności UInteger udostępnia różnice między Integer najbardziej wydajnymi wszystkimi podstawowymi typami danych liczbowych.

Typy liczbowe nieliczbowe

Typy danych nieintegralnych to te, które reprezentują liczby zarówno z częściami całkowitymi, jak i ułamkowych.

Typy danych liczbowych nieliczbowych to Decimal (128-bitowy stały punkt), pojedynczy typ danych (zmiennoprzecinkowa 32-bitowa) i podwójny typ danych (64-bitowy zmiennoprzecinkowa). Są to wszystkie podpisane typy. Jeśli zmienna może zawierać ułamek, zadeklaruj ją jako jeden z tych typów.

Decimal nie jest typem danych zmiennoprzecinkowych. Decimal liczby mają wartość binarną całkowitą i współczynnik skalowania liczb całkowitych określający, która część wartości jest ułamkiem dziesiętnym.

Zmienne można używać Decimal dla wartości pieniężnych. Zaletą jest precyzja wartości. Double Typ danych jest szybszy i wymaga mniejszej ilości pamięci, ale podlega błędom zaokrąglania. Typ Decimal danych zachowuje pełną dokładność do 28 miejsc dziesiętnych.

Liczby zmiennoprzecinkowe (Single i Double) mają większe zakresy niż Decimal liczby, ale mogą podlegać błędom zaokrąglania. Typy zmiennoprzecinkowe obsługują mniej znaczących cyfr niż Decimal ale mogą reprezentować wartości o większej wielkości.

Nieintegralne wartości liczbowe mogą być wyrażone jako mmmEeee, w którym mmm jest mantissa (cyfry znaczące), a eee jest wykładnikiem (moc 10). Najwyższe wartości dodatnie typów nieintegracyjnych to 7,9228162514264375935543950335E+28 dla Decimal, 3,4028235E+38 dla Single, i 1,79769313486231570E+308 dla Double.

Wydajność

Double jest najbardziej wydajnym typem danych ułamkowych, ponieważ procesory na bieżących platformach wykonują operacje zmiennoprzecinkowe w podwójnej precyzji. Jednak operacje z Double programem nie są tak szybkie, jak w przypadku typów całkowitych, takich jak Integer.

Małe wielkości

W przypadku liczb o najmniejszej możliwej wielkości (najbliższej 0) Double zmienne mogą zawierać liczby tak małe, jak -4,94065645841246544E-324 dla wartości ujemnych i 4,9406564584124654E-324 dla wartości dodatnich.

Małe liczby ułamkowe

Jeśli nie potrzebujesz pełnego zakresu Double danych, możesz użyć Single typu danych, który może zawierać liczby zmiennoprzecinkowe z zakresu od -3,4028235E+38 do 3,4028235E+38. Najmniejsze wielkości zmiennych Single to -1,401298E-45 dla wartości ujemnych i 1,401298E-45 dla wartości dodatnich. Jeśli masz bardzo dużą liczbę zmiennych, które przechowują małe liczby zmiennoprzecinkowe, środowisko uruchomieniowe języka wspólnego może czasami wydajniej przechowywać Single zmienne i zapisywać zużycie pamięci.

Zobacz też