Funkce převodu typu (Visual Basic)
Tyto funkce jsou kompilované vložené, což znamená, že převod kódu je část kódu, který vyhodnotí výraz.Někdy je žádné volání procedury k provedení převodu zlepšuje výkon.Každá funkce převede výraz na určitého datového typu.
CBool(expression)
CByte(expression)
CChar(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CObj(expression)
CSByte(expression)
CShort(expression)
CSng(expression)
CStr(expression)
CUInt(expression)
CULng(expression)
CUShort(expression)
Část
- expression
Povinné.Výraz typu zdroje dat.
Vrátí hodnotu typu dat
Název funkce určuje typ dat hodnoty, které vrátí, jak je uvedeno v následující tabulce.
Název funkce |
Návratový typ. |
Rozsah pro expression argument |
---|---|---|
CBool |
Libovolný platný Char nebo String nebo číselný výraz. |
|
CByte |
0 až 255 (bez znaménka); zlomkové části jsou zaokrouhleny.1 |
|
CChar |
Libovolný platný Char nebo String výrazu; pouze první znak String převodu; možné hodnoty 0 až 65535 (bez znaménka). |
|
CDate |
Libovolné platné vyjádření data a času. |
|
CDbl |
-1.79769313486231570E + 308 prostřednictvím - 4.94065645841246544E-324 pro záporné hodnoty; 4.94065645841246544E-324 až 1.79769313486231570E + 308 pro kladné hodnoty. |
|
CDec |
+/-79,228,162,514,264,337,593,543,950,335 s nulovou šířkou čísla, čísla bez desetinných míst.Pro čísla s 28 desetinnými místy je rozsah +/-7,9228162514264337593543950335.Nejmenší možné nenulové číslo je 0,0000000000000000000000000001 (+/-1E-28). |
|
CInt |
648 až 2 147 483 647; zlomkové části jsou zaokrouhleny.1 |
|
CLng |
-9,223,372,036,854,775,808 až 9,223,372,036,854,775,807; zlomkové části jsou zaokrouhleny.1 |
|
CObj |
Libovolný platný výraz. |
|
CSByte |
-128 až 127; zlomkové části jsou zaokrouhleny.1 |
|
CShort |
-32 768 až 32 767; zlomkové části jsou zaokrouhleny.1 |
|
CSng |
-3.402823E + 38 - 1, 401298E-45 pro záporné hodnoty; 1, 401298E-45 až 3.402823E + 38 pro kladné hodnoty. |
|
CStr |
Vrátí pro CStr závisí expression argument.Viz téma Vrácené hodnoty funkce CStr (Visual Basic). |
|
CUInt |
0 až 4 294 967 295 (bez znaménka); zlomkové části jsou zaokrouhleny.1 |
|
CULng |
0 až 18,446,744,073,709,551,615 (bez znaménka); zlomkové části jsou zaokrouhleny.1 |
|
CUShort |
0 až 65 535 (bez znaménka); zlomkové části jsou zaokrouhleny.1 |
1 Zlomkové části může být zvláštní typ zaokrouhlení s názvem Bankovní zaokrouhlení.Další informace naleznete v tématu "Poznámky".
Poznámky
Zpravidla byste měli použít funkce jazyka Visual Basic typ převodu přednostně.NET Framework metody jako ToString(), buď na Convert třídy nebo z třídy nebo struktury jednotlivých typu.Funkce jazyka Visual Basic, které jsou určeny pro optimální interakce s kódem jazyka Visual Basic a provedou zdrojového kódu, kratší a snadněji číst.Kromě toho.NET Framework metod převodu vždy neposkytují stejné výsledky jako funkce jazyka Visual Basic, například při převodu Boolean na Integer.Další informace naleznete v tématu Poradce při potížích s typy dat (Visual Basic).
Chování
Vynucení. Obecně lze pomocí funkcí pro převod typů dat převodní výsledek operace datový typ. než výchozí typ dat.Například pomocí CDec desítkové aritmetický v případech, kde jednoduchá přesnost, dvojitá přesnost nebo celé aritmetické by zpravidla vynutit.
Převody se nezdařilo. Pokud expression předaný funkci je mimo rozsah datového typu, kterých se má převést, OverflowException dochází.
Zlomkové části. Když převedete na integrál nonintegral hodnotu zadejte, funkcí pro převod celé číslo (CByte, CInt, CLng, CSByte, CShort, CUInt, CULng, a CUShort) odebrat desetinnou část a hodnotu na nejbližší celé číslo zaokrouhlit.
Pokud desetinnou část je přesně 0,5, funkcí pro převod celé číslo zaokrouhlit na nejbližší sudé celé číslo.0,5 Zaokrouhlí číslo 0 a 1.5 a 2.5, které obě zaokrouhlit na 2.Se někdy nazývá Bankovní zaokrouhlení, a jeho účelem je kompenzovat bias, který nelze při přidávání počet čísel společně nashromáždí.
CInta CLng se liší od Int a Fix funkce, které se oříznou, a nikoli zaokrouhlí desetinnou část čísla.Také Fix a Int vždy vrací hodnotu dat stejného typu jako předáte.
Datum a čas převody. Použití IsDate funkce určit Pokud hodnotu lze převést na datum a čas.CDaterozpozná literály datum a čas literály, ale není číselné hodnoty.Převést Visual Basic 6.0 Date hodnotu Date hodnotu v jazyce Visual Basic 2005 nebo novější, můžete použít DateTime.FromOADate metoda.
Neutrální hodnoty data a času.Typ dat Datum (Visual Basic) Vždy obsahuje informace o datu a času.Považuje pro účely převodu typu jazyka Visual Basic za 1/1/0001 (ledna roku 1) neutrální hodnota pro datum a 00: 00: 00 (půlnoc) za neutrální hodnota pro čas.Pokud převedete Date hodnotou je řetězec, CStr nezahrnuje neutrální hodnoty výsledný řetězec.Převedete-li například #January 1, 0001 9:30:00# je řetězec, výsledkem je "9: 30: 00 AM"; informace o datu je potlačeno.Informace o datu je však stále ještě v původní Date hodnotu a lze obnovit pomocí funkce jako DatePart funkce.
Citlivost kultury. Funkce převodu typu zahrnující řetězce provádět převody na základě aktuálního nastavení kultury pro aplikaci.Například CDate rozpoznává formáty data podle místního nastavení systému.Zadejte den, měsíc a rok ve správném pořadí pro národní prostředí nebo datum nesmí být interpretována správně.Pokud obsahuje řetězec den v týdnu, jako například "Středa" nebyl rozpoznán formát dlouhého data.
Pokud potřebujete převést do nebo z řetězcové vyjádření hodnoty ve formátu než určené národní prostředí, nelze použít funkce převodu typu jazyka Visual Basic.Chcete-li to provést, použijte ToString(IFormatProvider) a Parse(String, IFormatProvider) metody tuto hodnotu typu.Například pomocí Double.Parse při převodu řetězce na Doublea Double.ToString při převodu hodnoty typu Double na řetězec.
Funkce CType
CType funkce trvá druhého argumentu typenamea převede expression na typename, kde typename může být datový typ, struktura, třídy nebo rozhraní, na který existuje platný převodu.
Srovnání CType s klíčová jiný typ převodu slova, viz Operátor DirectCast (Visual Basic) a Operátor TryCast (Visual Basic).
Příklad funkce CBool
V následujícím příkladu CBool funkce převést výrazy Boolean hodnoty.Pokud je výraz vyhodnocen jako nenulová hodnota, CBool vrátí True; v ostatních případech vrátí hodnotu False.
Dim a, b, c As Integer
Dim check As Boolean
a = 5
b = 5
' The following line of code sets check to True.
check = CBool(a = b)
c = 0
' The following line of code sets check to False.
check = CBool(c)
Příklad funkce CByte
V následujícím příkladu CByte funkce výraz převést Byte.
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
Příklad funkce CChar
V následujícím příkladu CChar funkce k převodu prvního znaku String výraz Char typu.
Dim aString As String
Dim aChar As Char
' CChar converts only the first character of the string.
aString = "BCD"
' The following line of code sets aChar to "B".
aChar = CChar(aString)
Vstupní argument CChar musí být typu dat Char nebo String.Nelze použít CChar k převodu čísla na znak, protože CChar nepřijme číselný typ dat.Následující příklad získá číslo představující bod kódu (kód znaku) a převede na odpovídající znak.Používá InputBox funkce získat řetězec číslic, CInt převést řetězec zadejte Integer, a ChrW převést na číslo zadejte Char.
Dim someDigits As String
Dim codePoint As Integer
Dim thisChar As Char
someDigits = InputBox("Enter code point of character:")
codePoint = CInt(someDigits)
' The following line of code sets thisChar to the Char value of codePoint.
thisChar = ChrW(codePoint)
Příklad funkce CDate
V následujícím příkladu CDate funkce pro převod řetězce na Date hodnoty.Obecně není vhodné pevný kódování dat a časů jako řetězce (jak je uvedeno v následujícím příkladu).Pomocí datové a časové literály, například #Feb 12, 1969 # a # 4: 45: 23 PM #, místo.
Dim aDateString, aTimeString As String
Dim aDate, aTime As Date
aDateString = "February 12, 1969"
aTimeString = "4:35:47 PM"
' The following line of code sets aDate to a Date value.
aDate = CDate(aDateString)
' The following line of code sets aTime to Date value.
aTime = CDate(aTimeString)
CDbl příklad
Dim aDec As Decimal
Dim aDbl As Double
' The following line of code uses the literal type character D to make aDec a Decimal.
aDec = 234.456784D
' The following line of code sets aDbl to 1.9225456288E+1.
aDbl = CDbl(aDec * 8.2D * 0.01D)
Příklad funkce CDec
V následujícím příkladu CDec funkci, která převede číselnou hodnotu na Decimal.
Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' The following line of code sets aDecimal to 10000000.0587.
aDecimal = CDec(aDouble)
Příklad funkce CInt
V následujícím příkladu CInt funkci, která převede hodnotu na Integer.
Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)
CLng příklad
V následujícím příkladu CLng funkce pro převod hodnot Long.
Dim aDbl1, aDbl2 As Double
Dim aLng1, aLng2 As Long
aDbl1 = 25427.45
aDbl2 = 25427.55
' The following line of code sets aLng1 to 25427.
aLng1 = CLng(aDbl1)
' The following line of code sets aLng2 to 25428.
aLng2 = CLng(aDbl2)
Příklad CObj
V následujícím příkladu CObj funkci, která převede číselnou hodnotu na Object.Object Proměnné, sama obsahuje pouze čtyř bajtů ukazatel, který odkazuje Double hodnota přiřazena.
Dim aDouble As Double
Dim anObject As Object
aDouble = 2.7182818284
' The following line of code sets anObject to a pointer to aDouble.
anObject = CObj(aDouble)
Příklad CSByte
V následujícím příkladu CSByte funkci, která převede číselnou hodnotu na SByte.
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)
Příklad CShort
V následujícím příkladu CShort funkci, která převede číselnou hodnotu na Short.
Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)
CSng příklad
V následujícím příkladu CSng funkce pro převod hodnot Single.
Dim aDouble1, aDouble2 As Double
Dim aSingle1, aSingle2 As Single
aDouble1 = 75.3421105
aDouble2 = 75.3421567
' The following line of code sets aSingle1 to 75.34211.
aSingle1 = CSng(aDouble1)
' The following line of code sets aSingle2 to 75.34216.
aSingle2 = CSng(aDouble2)
CStr příklad
V následujícím příkladu CStr funkci, která převede číselnou hodnotu na String.
Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' The following line of code sets aString to "437.324".
aString = CStr(aDouble)
V následujícím příkladu CStr funkce pro převod Date hodnoty String hodnoty.
Dim aDate As Date
Dim aString As String
' The following line of code generates a COMPILER ERROR because of invalid format.
' aDate = #February 12, 1969 00:00:00#
' Date literals must be in the format #m/d/yyyy# or they are invalid.
' The following line of code sets the time component of aDate to midnight.
aDate = #2/12/1969#
' The following conversion suppresses the neutral time value of 00:00:00.
' The following line of code sets aString to "2/12/1969".
aString = CStr(aDate)
' The following line of code sets the time component of aDate to one second past midnight.
aDate = #2/12/1969 12:00:01 AM#
' The time component becomes part of the converted value.
' The following line of code sets aString to "2/12/1969 12:00:01 AM".
aString = CStr(aDate)
CStrvždy vykreslí Date hodnotu v krátké standardní formát pro aktuální národní prostředí, například "15/6/2003 4: 35: 47 odp.".Však CStr potlačí neutrální hodnoty z 1/1/0001 00: 00: 00 času a data.
Další podrobnosti o hodnoty vrácené CStr, viz Vrácené hodnoty funkce CStr (Visual Basic).
Příklad CUInt
V následujícím příkladu CUInt funkci, která převede číselnou hodnotu na UInteger.
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)
Příklad CULng
V následujícím příkladu CULng funkci, která převede číselnou hodnotu na ULong.
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)
Příklad CUShort
V následujícím příkladu CUShort funkci, která převede číselnou hodnotu na UShort.
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)