Partilhar via


Funções de conversão de tipo (Visual Basic)

These functions are compiled inline, meaning the conversion code is part of the code that evaluates the expression.Sometimes there is no call to a procedure to accomplish the conversion, which improves performance.Each function coerces an expression to a specific data type.

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)

Parte

  • expression
    Obrigatório.Any expression of the source data type.

Return Value Data Type

The function name determines the data type of the value it returns, as shown in the following table.

Nome da função

Tipo de dado retonado

Intervalo para expression argumento

CBool

Tipo de dados Boolean (Visual Basic)

Qualquer Char ou String ou expressão numérica.

CByte

Tipo de dados de byte (Visual Basic)

0 through 255 (unsigned); fractional parts are rounded.1

CChar

Tipo de dados char (Visual Basic)

Qualquer Char ou String expressão; somente primeiro caractere de um String é convertida; valor pode ser 0 65535 até (sem sinal).

CDate

Tipo de dados Date (Visual Basic)

Any valid representation of a date and time.

CDbl

Tipo de dados Double (Visual Basic)

-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values; 4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values.

CDec

Tipo de dados decimal (Visual Basic)

+/-79,228,162,514,264,337,593,543,950,335 for zero-scaled numbers, that is, numbers with no decimal places.For numbers with 28 decimal places, the range is +/-7.9228162514264337593543950335.The smallest possible non-zero number is 0.0000000000000000000000000001 (+/-1E-28).

CInt

Tipo de dados inteiro (Visual Basic)

-2,147,483,648 through 2,147,483,647; fractional parts are rounded.1

CLng

Tipo de dado Long (Visual Basic)

-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807; fractional parts are rounded.1

CObj

Tipo de dados Object

Qualquer expressão válida.

CSByte

Tipo de dados SByte (Visual Basic)

-128 through 127; fractional parts are rounded.1

CShort

Tipo de dados Short (Visual Basic)

-32,768 through 32,767; fractional parts are rounded.1

CSng

Tipo de dados único (Visual Basic)

-3.402823E+38 through -1.401298E-45 for negative values; 1.401298E-45 through 3.402823E+38 for positive values.

CStr

Tipo de dados de seqüência de caracteres (Visual Basic)

Retorna para CStr dependem do expression argumento.Consulte Valores de retorno para a função CStr (Visual Basic).

CUInt

Tipo de dados UInteger

0 through 4,294,967,295 (unsigned); fractional parts are rounded.1

CULng

Tipo de dados ULong (Visual Basic)

0 through 18,446,744,073,709,551,615 (unsigned); fractional parts are rounded.1

CUShort

Tipo de dados UShort (Visual Basic)

0 through 65,535 (unsigned); fractional parts are rounded.1

1 Fractional parts can be subject to a special type of rounding called banker's rounding.See "Remarks" for more information.

Comentários

Como regra, você deve usar as funções de conversão de tipo de Visual Basic em preferência à.Métodos de NET Framework, como ToString(), ambos na Convert classe ou em uma classe ou estrutura tipo individuais.The Visual Basic functions are designed for optimal interaction with Visual Basic code, and they also make your source code shorter and easier to read.Além disso, o.Métodos de conversão do NET Framework não produzir os mesmos resultados que as funções Visual Basic, por exemplo, ao converter sempre Boolean para Integer.Para obter mais informações, consulte Solucionando problemas de tipos de dados (Visual Basic).

Comportamento

  • Coercion. In general, you can use the data type conversion functions to coerce the result of an operation to a particular data type rather than the default data type.Por exemplo, use CDec para forçar aritmética decimal em casos onde precisão simples, precisão dupla ou aritmética inteira normalmente demoraria local.

  • Failed Conversions. Se a expression passado para a função está fora do intervalo do tipo de dados para a qual ele será convertido, um OverflowException ocorre.

  • Fractional Parts. Quando você converte um valor de nonintegral para uma integral digitar, as funções de conversão de inteiro (CByte, CInt, CLng, CSByte, CShort, CUInt, CULng, e CUShort) removem a parte fracionária e arredondar o valor para o inteiro mais próximo.

    If the fractional part is exactly 0.5, the integer conversion functions round it to the nearest even integer.Por exemplo, 0,5 é arredondado para 0 e 1.5 e 2.5 que sejam arredondados para 2.Isso às vezes é chamado o arredondamento bancário, e sua finalidade é compensar uma inclinação que pode acumular ao adicionar muitos esses números juntos.

    CInte CLng diferir do Int e Fix funções, que truncar, ao invés de arredondar, a parte fracionária de um número.Além disso, Fix e Int sempre retornam um valor do mesmo tipo de dados que você passe no.

  • Date/Time Conversions. Use o IsDate função para determinar se um valor pode ser convertido para uma data e hora.CDatereconhece literais de data e literais de hora, mas valores não numéricos.Para converter um 6.0 Visual Basic Date valor para um Date valor no Visual Basic 2005 ou versões posteriores, você pode usar o DateTime.FromOADate método.

  • Neutral Date/Time Values. O Tipo de dados Date (Visual Basic) sempre contém informações sobre a data e a hora.For purposes of type conversion, Visual Basic considers 1/1/0001 (January 1 of the year 1) to be a neutral value for the date, and 00:00:00 (midnight) to be a neutral value for the time.Se você converter um Date valor para uma seqüência de caracteres, CStr não inclui neutros valores na seqüência de caracteres resultante.For example, if you convert #January 1, 0001 9:30:00# to a string, the result is "9:30:00 AM"; the date information is suppressed.No entanto, as informações de data ainda estão presentes no original Date de valor e podem ser recuperados com funções como DatePart função.

  • Culture Sensitivity. The type conversion functions involving strings perform conversions based on the current culture settings for the application.Por exemplo, CDate reconhece formatos de data de acordo com a configuração de localidade do sistema.You must provide the day, month, and year in the correct order for your locale, or the date might not be interpreted correctly.A long date format is not recognized if it contains a day-of-the-week string, such as "Wednesday".

    If you need to convert to or from a string representation of a value in a format other than the one specified by your locale, you cannot use the Visual Basic type conversion functions.To do this, use the ToString(IFormatProvider) and Parse(String, IFormatProvider) methods of that value's type.Por exemplo, use Double.Parse ao converter uma seqüência de caracteres para um Doublee usar Double.ToString ao converter um valor do tipo Double para uma seqüência de caracteres.

CType Function

O Função CType usa um segundo argumento, typenamee o converte no expression para typename, onde typename pode ser qualquer tipo de dados, estrutura, classe ou interface para o qual existe uma conversão válida.

Para uma comparação de CType com as outras conversão de tipos palavras-chave, consulte Operador de DirectCast (Visual Basic) e Operador de TryCast (Visual Basic).

CBool Example

O exemplo a seguir usa a CBool função para converter expressões para Boolean valores.Se uma expressão for avaliada como um valor diferente de zero, CBool retorna True; Caso contrário, ele retornará 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)

CByte Example

O exemplo a seguir usa a CByte função para converter uma expressão para um Byte.

Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)

CChar Example

O exemplo a seguir usa a CChar função para converter o primeiro caractere de um String a expressão para um Char tipo.

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)

O argumento de entrada para CChar deve ser do tipo de dados Char ou String.Não é possível usar CChar para converter um número para um caractere, como CChar não pode aceitar o tipo de dados numéricos.The following example obtains a number representing a code point (character code) and converts it to the corresponding character.Ele usa o InputBox a função para obter a seqüência de dígitos, CInt para converter a seqüência de caracteres para digitar Integer, e ChrW para converter o número para digitar 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)

CDate Example

O exemplo a seguir usa a CDate função para converter seqüências de caracteres para Date valores.In general, hard-coding dates and times as strings (as shown in this example) is not recommended.Use date literals and time literals, such as #Feb 12, 1969# and #4:45:23 PM#, instead.

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 Example

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)

CDec Example

O exemplo a seguir usa a CDec função para converter um valor numérico para 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)

CInt Example

O exemplo a seguir usa a CInt função para converter um valor para 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 Example

O exemplo a seguir usa a CLng função para converter valores de 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)

CObj Example

O exemplo a seguir usa a CObj função para converter um valor numérico para Object.O Object própria variável contém apenas um ponteiro de quatro bytes, que aponta para o Double valor atribuído a ele.

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)

CSByte Example

O exemplo a seguir usa a CSByte função para converter um valor numérico para SByte.

Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)

CShort Example

O exemplo a seguir usa a CShort função para converter um valor numérico para Short.

Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)

CSng Example

O exemplo a seguir usa a CSng função para converter valores de 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 Example

O exemplo a seguir usa a CStr função para converter um valor numérico para 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)

O exemplo a seguir usa a CStr função para converter Date valores a String valores.

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)

CStrsempre renderiza uma Date o valor no formato curto padrão para a localidade atual, por exemplo, "15/6/2003 4: 35: 47 PM".No entanto, CStr suprime a valores neutras de 1/1/0001 para a data e a 00: 00: 00 para o tempo.

Para obter mais detalhes sobre os valores retornados por CStr, consulte Valores de retorno para a função CStr (Visual Basic).

CUInt Example

O exemplo a seguir usa a CUInt função para converter um valor numérico para UInteger.

Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)

CULng Example

O exemplo a seguir usa a CULng função para converter um valor numérico para ULong.

Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)

CUShort Example

O exemplo a seguir usa a CUShort função para converter um valor numérico para UShort.

Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)

Consulte também

Referência

Funções de conversão (Visual Basic)

Asc

AscW

Chr

ChrW

Int

Fix

Format

Hex

Oct

Str

Val

Outros recursos

Conversões de tipo em Visual Basic