Cada função coagi um expressão a um tipo de dados específico .
Sintaxe
CBool( expression )
CByte( expression )
CCur( expression )
CDate( expression )
CDbl( expression )
CDec( expression )
CInt( expression )
CLng( expression )
CSng( expression )
CStr( expression )
CVar( expressão )
A expressão necessáriaargumento é qualquer expressão de cadeia de caracteres ou expressão numérica.
Tipos de Retorno
O nome da função determina o tipo de retorno, conforme mostrado no seguinte:
Função |
Tipo de Retorno |
Intervalo para argumento de expressão |
---|---|---|
CBool |
Booliano |
Qualquer cadeia de caracteres ou expressão numérica válida. |
CByte |
Byte |
0 a 255. |
CCur |
Moeda |
-922.337.203.685.477.5808 a 922.337.203.685.477.5807. |
CDate |
Data |
Qualquer expressão de data válida. |
CDbl |
Duplo |
-1.79769313486231E308 para |
CDec |
Decimal |
+/-79.228.162.514.264.337.593.543.950.335 para números em escala zero, ou seja, números sem casas decimais. Para números com 28 casas decimais, o intervalo é |
CInt |
Inteiro |
-32.768 a 32.767; frações são arredondadas. |
CLng |
Longas |
-2.147.483.648 a 2.147.483.647; frações são arredondadas. |
CSng |
Simples |
-3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos. |
CStr |
Cadeia de caracteres |
Os retornos para CStr dependem do argumento de expressão . |
CVar |
Variante |
Mesmo intervalo de Duplo para numéricos. Mesmo intervalo de Cadeia para não numéricos. |
Comentários
Se a expressão passada para a função estiver fora do intervalo do tipo de dados em que está sendo convertido, ocorrerá um erro.
Em geral, você pode documentar seu código usando as funções de conversão do tipo de dados para mostrar que o resultado de alguma operação deve ser expresso como um tipo de dados específico, em vez do tipo de dados padrão. Por exemplo, use cCur para forçar a aritmética de moeda nos casos em que a aritmética de precisão única, precisão dupla ou aritmética inteiro normalmente ocorreria.
Você deve usar as funções de conversão do tipo de dados em vez do Val para fornecer conversões internacionalmente conscientes de um tipo de dados para outro. Por exemplo, quando você usa CCur, separadores decimal diferentes, milhares de separadores diferentes e várias opções de moeda são devidamente reconhecidos dependendo da configuração de localidade do computador.
Quando a parte fracionária é exatamente 0,5, CInt e CLng sempre arredondam para o número par mais próximo. Por exemplo, 0,5 rodadas para 0 e 1,5 rodadas para 2. CInt e CLng diferem das funções Fix e Int , que truncam, em vez de arredondar, a parte fracionária de um número. Além disso, Correção e Int sempre retornam um valor do mesmo tipo que é passado.
Use a função IsDate para determinar se a data pode ser convertida em uma data ou hora. O CDate reconhece literais de data e literais de hora, bem como alguns números que se enquadram no intervalo de datas aceitáveis. Ao converter um número em uma data, a parte número inteiro é convertida em uma data. Qualquer parte fracionária do número é convertida em uma hora do dia, começando à meia-noite.
O CDate reconhece formatos de data de acordo com a configuração localidade do sistema. A ordem correta de dia, mês e ano pode não ser determinada se ela for fornecida em um formato diferente de uma das configurações de data reconhecidas. Além disso, um formato de data longa não será reconhecido se ele também contiver a cadeia de caracteres do dia da semana.
Uma função CVDate também é fornecida para compatibilidade com versões anteriores do Visual Basic. A sintaxe da função CVDate é idêntica à função CDate , no entanto, o CVDate retorna uma Variant cujo subtipo é Date em vez de um tipo de Data real. Como agora há um tipo de Data intrínseca, não há mais necessidade de CVDate. O mesmo efeito pode ser obtido convertendo uma expressão em uma Data e atribuindo-a a uma Variant. Essa técnica é consistente com a conversão de todos os outros tipos intrínsecos em seus subtipos variant equivalentes.
Observação: A função CDec não retorna um tipo de dados discreto; Em vez disso, ele sempre retorna uma Variant cujo valor foi convertido em um subtipo Decimal .
Exemplos de consulta
Expressão |
Resultados |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Retorna "SalePrice", "FinalPrice" e avalia se SalePrice é maior que Preço Final. Retorna "-1" se verdadeiro e "0" se for falso. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Quantidade" em formato de bytes e exibe na coluna Expr1 Retorna "ProductID", converte os valores no campo "Quantidade" em Conversor de Moedas formato e exibe na coluna Expr1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "DateofSale" em formato Date e é exibido na coluna Expr1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em Formato duplo e é exibido na coluna Expr1. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em formato Inteiro e é exibido na coluna Expr1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em formato long e é exibido na coluna Expr1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em formato único e é exibido na coluna Expr1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em formato string e é exibido na coluna Expr1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Retorna "ProductID", converte os valores no campo "Desconto" em Double para valores numéricos e Cadeia de caracteres para valores não numéricos. |
Exemplos de VBA
Observação: Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, consulte Referência do Access VBA.
Função CBool
Este exemplo usa a função CBool para converter uma expressão em um booliano. Se a expressão for avaliada como um valor não zero, o CBool retornará True; caso contrário, ele retorna False.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
Função CByte
Este exemplo usa a função CByte para converter uma expressão em um Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Função CCur
Este exemplo usa a função CCur para converter uma expressão em um Conversor de Moedas.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).
Função CDate
Este exemplo usa a função CDate para converter uma cadeia de caracteres em uma Data. Em geral, não é recomendável codificar datas e horários como cadeias de caracteres (conforme mostrado neste exemplo). Use literais de data e literais de hora, como #2/12/1969# e #4:45:23 PM#, em vez disso.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)
Função CDbl
Este exemplo usa a função CDbl para converter uma expressão em um Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Função CDec
Este exemplo usa a função CDec para converter um valor numérico em um Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Função CInt
Este exemplo usa a função CInt para converter um valor em um Inteiro.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Função CLng
Este exemplo usa a função CLng para converter um valor em um Long.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.
Função CSng
Este exemplo usa a função CSng para converter um valor em um Único.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.
Função CStr
Este exemplo usa a função CStr para converter um valor numérico em uma Cadeia de Caracteres.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Função CVar
Este exemplo usa a função CVar para converter uma expressão em uma Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.