Dela via


Numeriska datatyper (Visual Basic)

Visual Basic tillhandahåller flera numeriska datatyper för att hantera tal i olika representationer. Integraltyper representerar endast heltal (positiva, negativa och noll) och icke-inintegrala typer representerar tal med både heltal och bråkdelar.

En tabell som visar en jämförelse sida vid sida av Visual Basic-datatyperna finns i Datatyper.

Integral numeriska typer

Integraldatatyper är de som endast representerar tal utan bråkdelar.

De signerade integraldatatyperna är SByte Data Type (8-bitars), Short Data Type (16-bitars), Integer Data Type (32-bitars) och Long Data Type (64-bitars). Om en variabel alltid lagrar heltal i stället för bråktal deklarerar du det som en av dessa typer.

De osignerade integraltyperna är Byte Data Type (8-bitars), UShort Data Type (16-bitars), UInteger Data Type (32-bitars) och ULong Data Type (64-bitars). Om en variabel innehåller binära data eller data av okänd karaktär deklarerar du den som en av dessa typer.

Prestanda

Aritmetiska åtgärder är snabbare med integraltyper än med andra datatyper. De är snabbast med typerna Integer och UInteger i Visual Basic.

Stora heltal

Om du behöver ha ett heltal som är större än vad Integer datatypen kan innehålla kan du använda Long datatypen i stället. Long variabler kan innehålla tal från -9 223 372 036 854 775 808 till 9 223 372 036 854 775 807. Åtgärder med Long är något långsammare än med Integer.

Om du behöver ännu större värden kan du använda decimaldatatypen. Du kan lagra tal från -79 228 162 514 264 337 593 543 950 335 till 79 228 162 514 264 337 593 543 950 335 i en Decimal variabel om du inte använder några decimaler. Åtgärder med Decimal tal är dock betydligt långsammare än med någon annan numerisk datatyp.

Små heltal

Om du inte behöver hela datatypens intervall Integer kan du använda Short datatypen, som kan innehålla heltal från -32 768 till 32 767. För det minsta heltalsintervallet SByte innehåller datatypen heltal från -128 till 127. Om du har ett mycket stort antal variabler som innehåller små heltal kan den vanliga språkkörningen ibland lagra dina Short variabler och SByte variabler mer effektivt och spara minnesförbrukning. Åtgärder med Short och SByte är dock något långsammare än med Integer.

Osignerade heltal

Om du vet att variabeln aldrig behöver innehålla ett negativt tal kan du använda de osignerade typerna Byte, UShortUInteger, och .ULong Var och en av dessa datatyper kan innehålla ett positivt heltal dubbelt så stort som motsvarande signerade typ (SByte, , ShortIntegeroch Long). När det gäller prestanda är varje osignerad typ exakt lika effektiv som motsvarande signerade typ. I synnerhet UInteger delar med Integer skillnaden att vara den mest effektiva av alla elementära numeriska datatyper.

Icke-inintegrala numeriska typer

Icke-inintegrala datatyper är de som representerar tal med både heltal och bråkdelar.

De icke-inintegrala numeriska datatyperna är Decimal (128-bitars fast punkt), Enkel datatyp (32-bitars flyttal) och Dubbel datatyp (64-bitars flyttals). De är alla signerade typer. Om en variabel kan innehålla ett bråk deklarerar du den som en av dessa typer.

Decimal är inte en flyttalsdatatyp. Decimal tal har ett binärt heltalsvärde och en heltalsskalningsfaktor som anger vilken del av värdet som är ett decimaltal.

Du kan använda Decimal variabler för penningvärden. Fördelen är värdenas precision. Datatypen Double är snabbare och kräver mindre minne, men det kan uppstå avrundningsfel. Datatypen Decimal behåller fullständig noggrannhet till 28 decimaler.

Flyttal (Single och Double) tal har större intervall än Decimal tal, men kan bli föremål för avrundningsfel. Flyttalstyper stöder färre signifikanta siffror än Decimal men kan representera värden med större omfattning.

Icke-inintegrala talvärden kan uttryckas som mmmEeee, där mmm är mantissa (de signifikanta siffrorna) och eee är exponenten (en effekt på 10). De högsta positiva värdena för de ickeintegrala typerna är 7.9228162514264337593543950335E+28 för Decimal, 3.4028235E+38 för Singleoch 1.79769313486231570E+308 för Double.

Prestanda

Double är den mest effektiva av bråkdatatyperna, eftersom processorerna på de aktuella plattformarna utför flyttalsåtgärder med dubbel precision. Åtgärder med Double är dock inte lika snabba som med de integrerade typerna, till Integerexempel .

Små magnituder

För tal med minsta möjliga storlek (närmast 0) Double kan variabler innehålla tal så små som -4,94065645841246544E-324 för negativa värden och 4,94065645841246544E-324 för positiva värden.

Små bråktal

Om du inte behöver hela datatypens intervall Double kan du använda Single datatypen, som kan innehålla flyttalsnummer från -3.4028235E+38 till 3.4028235E+38. De minsta magnituderna för Single variabler är -1,401298E-45 för negativa värden och 1,401298E-45 för positiva värden. Om du har ett mycket stort antal variabler som innehåller små flyttalsnummer kan den vanliga språkkörningen ibland lagra variablerna Single mer effektivt och spara minnesförbrukning.

Se även