Cada função força uma expressão (expressão: qualquer combinação de funções, constantes, operadores lógicos ou matemáticos e nomes de campos, controlos e propriedades que resulta num único valor. As expressões podem efectuar cálculos, manipular caracteres ou testar dados.) para um tipo de dados (tipo de dados: característica de um campo que determina qual o tipo de dados que o mesmo pode conter. Os tipos de dados incluem o tipo de dados booleano, número inteiro, longo, moeda, simples, duplo, data, cadeia e variante (predefinição).) específico.
Sintaxe
CBool(expressão)
CByte(expressão)
CMoeda(expressão)
CData(expressão)
CDup(expressão)
CDec(expressão)
CInt(expressão)
CLong(expressão)
CSimp(expressão)
CCad(expressão)
CVar(expressão)
O argumento (argumento: valor que fornece informações a uma acção, evento, método, propriedade, função ou procedimento.) obrigatório expressão é qualquer expressão de cadeia (expressão de cadeia: expressão que equivale a uma sequência de caracteres contíguos. Os elementos da expressão podem ser: funções que devolvem uma cadeia ou uma Variante de cadeia (VarType 8); uma cadeia literal, uma constante, uma variável ou Variante.)
ou expressão numérica (expressão numérica: qualquer expressão que possa gerar um número. A expressão pode ser qualquer combinação de variáveis, constantes, funções e operadores.).
Tipos de Retorno
O nome da função determina o tipo de retorno, conforme é mostrado a seguir:
| Função |
Tipo de Retorno |
Intervalo para o argumento expressão |
| CBool |
Booleano
|
Qualquer cadeia ou expressão numérica válida. |
| CByte |
Byte
|
De 0 a 255. |
| CMoeda |
Moeda
|
De -922.337.203.685.477,5808 a 922.337.203.685.477,5807. |
| CData |
Data
|
Qualquer expressão de data válida. |
| CDup |
Duplo
|
De -1.79769313486231E308 a -4.94065645841247E-324 para valores negativos; de 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos. |
| CDec |
Decimal
|
+/-79.228.162.514.264.337.593.543.950.335 para números de escala zero, isto é, números sem casas decimais. Para os números com 28 casas decimais, o intervalo é +/-7,9228162514264337593543950335. O número diferente de zero mais pequeno possível é 0,0000000000000000000000000001. |
| CInt |
Número Inteiro
|
De -32.768 a 32.767; as fracções são arredondadas. |
| CLong |
Longo
|
De -2.147.483.648 a 2.147.483.647; as fracções são arredondadas. |
| CSimp |
Simples
|
De -3.402823E38 a -1.401298E-45 para valores negativos; de 1.401298E-45 a 3.402823E38 para valores positivos. |
| CCad |
Cadeia
|
Os retornos para CCad dependem do argumento expressão. |
| CVar |
Variante
|
O mesmo intervalo que Duplo para numéricos. O mesmo intervalo que Cadeia para não numéricos. |
Observações
Se a expressão introduzida na função estiver fora do intervalo do tipo de dados que estão a ser convertidos, ocorre um erro.
De forma geral, pode documentar o código utilizando as funções de conversão de tipos de dados para mostrar que o resultado de algumas operações deve ser expresso como um tipo de dados específico e não um tipo de dados predefinido. Por exemplo, utilize a função CMoeda para forçar a aritmética de moeda em casos em que a precisão simples, a precisão dupla ou a aritmética de número inteiro provavelmente ocorre.
Deve utilizar as funções de conversão de tipos de dados em vez da função Val para fornecer conversões reconhecidas internacionalmente de um tipo de dados para outro. Por exemplo, quando utiliza a função CMoeda, os separadores decimais diferentes, os separadores de milhares diferentes e as várias opções de moeda são correctamente reconhecidos, dependendo da definição regional do computador do utilizador.
Quando a parte fraccionária é exactamente 0,5, as funções CInt e CLong arredondam sempre para o número par mais próximo. Por exemplo, 0,5 é arredondado para 0 e 1,5 é arredondado para 2. As funções CInt e CLong diferem das funções Corrigir e Int, que truncam, em vez de arredondar, a parte fraccionária de um número. Além disso, as funções Corrigir e Int devolvem sempre um valor do mesmo tipo que foi introduzido.
Utilize a função ÉData para determinar se a data pode ser convertida numa data ou hora. A função CData reconhece datas literais e horas literais, bem como alguns números que estão dentro do intervalo de datas aceitáveis. Ao converter um número numa data, a parte do número inteiro é convertida numa data. Qualquer parte fraccionária é convertida numa hora do dia, começando pela meia-noite.
A função CData reconhece os formatos de data de acordo com a definição regional (região: conjunto de informações que corresponde a um determinado idioma e país. do sistema do utilizador. A ordem correcta de dia, mês e ano pode não ser determinada se for fornecida num formato diferente das definições de data reconhecidas. Além disso, um formato de data longo não é reconhecido se também contiver a cadeia dia-da-semana.
Também é fornecida uma função CVData para compatibilidade com versões anteriores do Visual Basic. A sintaxe da função CVData é idêntica à da função CData, embora a função CVData devolva uma Variante cujo subtipo é Data e não um tipo de Data real. Uma vez que existe agora um tipo de Data intrínseco, a função CVData já não é necessária. O mesmo efeito pode ser obtido ao converter uma expressão numa Data e, em seguida, atribuí-la a uma Variante. Esta técnica é consistente com a conversão de todos os outros tipo intrínsecos nos subtipos de Variante equivalentes.
Nota A função CDec não devolve um tipo de dados discreto; em vez disso, devolve sempre uma Variante cujo valor tenha sido convertido num subtipo Decimal.
Exemplos
Nota Os exemplos que se seguem demonstram a utilização desta função num módulo do Visual Basic for Applications (VBA). Para mais informações sobre como trabalhar com VBA, seleccione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de procura.
Função CBool
Este exemplo utiliza a função CBool para converter uma expressão num valor Booleano. Se a expressão resultar num valor diferente de zero, a função CBool devolve Verdadeiro; caso contrário, devolve Falso.
Dim A, B, Verificar
A = 5: B = 5 ' Inicializar variáveis.
Verificar = CBool(A = B) ' Verificar contém Verdadeiro.
A = 0 ' Definir variável.
Verificar = CBool(A) ' verificar contém Falso.
Função CByte
Este exemplo utiliza a função CByte para converter uma expressão num Byte.
Dim MeuDuplo, MeuByte
MeuDuplo = 125.5678 ' MeuDuplo é um Duplo.
MeuByte = CByte(MeuDuplo) ' MeuByte contém 126.
Função CMoeda
Este exemplo utiliza a função CMoeda para converter uma expressão numa Moeda.
Dim MeuDuplo, MinhaMoe
MeuDuplo = 543.214588 ' MeuDuplo é um Duplo.
MinhaMoe = CMoeda(MeuDuplo * 2)
' Converter resultado de MeuDuplo * 2 (1086.429176) para uma
' Moeda (1086.4292).
Função CData
Este exemplo utiliza a função CData para converter uma cadeia numa Data. De forma geral, as datas e horas gravadas como cadeias (conforme é mostrado neste exemplo) não são recomendadas. Em vez disso, utilize datas e horas literais como, por exemplo, #2/12/1969# e #16:45:23#.
Dim MinhaData, MinhaDataAbreviada, MinhaHora, MinhaHoraAbreviada
MinhaData = "12 de Fevereiro, 1969"
' Converter para tipo de dados Data.
MinhaDataAbreviada = CData(MinhaData)
MinhaHora = "16:35:47"
' Converter para tipo de dados Data.
MinhaHoraAbreviada = CData(MinhaHora)
Função CDup
Este exemplo utiliza a função CDup para converter uma expressão num valor Duplo.
Dim MinhaMoe, MeuDuplo
MinhaMoe = CMoeda(234.456784)
' Converter resultado para um Duplo.
MeuDuplo = CDup(MinhaMoe * 8.2 * 0.01)
Função CDec
Este exemplo utiliza a função CDec para converter um valor numérico num valor Decimal.
Dim MeuDecimal, MinhaMoe
MinhaMoe = 10000000.0587 ' MinhaMoe é uma Moeda.
MeuDecimal = CDec(MinhaMoe) ' MeuDecimal é um Decimal.
Função CInt
Este exemplo utiliza a função CInt para converter um valor num Número Inteiro.
Dim MeuDuplo, MeuInt
MeuDuplo = 2345.5678 ' MeuDuplo é um Duplo.
MeuInt = CInt(MeuDuplo) ' MeuInt contém 2346.
Função CLong
Este exemplo utiliza a função CLong para converter um valor num valor Longo.
Dim MeuVal1, MeuVal2, MeuLongo1, MeuLongo2
MeuVal1 = 25427.45
MeuVal2 = 25427.55 ' MeuVal1, MeuVal2 são Duplos.
MeuLongo1 = CLong(MeuVal1)
' MeuLongo1 contém 25427.
MeuLongo2 = CLong(MeuVal2)
' MeuLongo2 contém 25428.
Função CSimp
Este exemplo utiliza a função CSimp para converter um valor num valor Simples.
Dim MeuDuplo1, MeuDuplo2, MeuSimples1, MeuSimples2
' MeuDuplo1, MeuDuplo2 são Duplos.
MeuDuplo1 = 75.3421115: MeuDuplo2 = 75.3421555
MeuSimples1 = CSimp(MeuDuplo1)
' MeuSimples1 contém 75.34211.
MeuSimples2 = CSimp(MeuDuplo2)
' MeuSimples2 contém 75.34216.
Função CCad
Este exemplo utiliza a função CCad para converter um valor numérico numa Cadeia.
Dim MeuDuplo, MinhaCadeia
MeuDuplo = 437.324 ' MeuDuplo é um Duplo.
MinhaCadeia = CCad(MeuDuplo)
' MinhaCadeia contém "437.324".
Função CVar
Este exemplo utiliza a função CVar para converter uma expressão numa Variante.
Dim MeuInt, MinhaVar
MeuInt = 4534 ' MeuInt é um Número Inteiro.
MinhaVar = CVar(MeuInt & "000")
' MinhaVar contém a cadeia 4534000.