NUMERO SEGUIDO POR # NO VISUAL BASIC
Boa Tarde pessoal ,
Estou com uma duvida em um codigo em VB6 , nunca vi isso e ja procurei em diversos locais porem não encontrei
Tenho um determinado codigo com uma formula EX :
Dim valor As Double
Dim valor2 As Double
valor = ((10 / 2) + 5#) * (1500# / 10#)
valor2 = ((10 / 2) + 5) * (1500 / 10)
End Sub
Os dois retornam os mesmos resultados minha duvida é a seguinte ,
Para que serve o # apos esses numeros visto que são apenas numeros e não variaveis .
Desde ja agradeço o pessoal
Estou com uma duvida em um codigo em VB6 , nunca vi isso e ja procurei em diversos locais porem não encontrei
Tenho um determinado codigo com uma formula EX :
Dim valor As Double
Dim valor2 As Double
valor = ((10 / 2) + 5#) * (1500# / 10#)
valor2 = ((10 / 2) + 5) * (1500 / 10)
End Sub
Os dois retornam os mesmos resultados minha duvida é a seguinte ,
Para que serve o # apos esses numeros visto que são apenas numeros e não variaveis .
Desde ja agradeço o pessoal
ele transforma em double
olha esse tópico
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=357175
olha esse tópico
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=357175
Esse sÃmbolo indica explicitamente o tipo da variável, que se não me engano, nesse caso, é double. Lembra dos exemplos que tem:
For i% = 1 to 10
.....
Next i%
Bem é o mesmo caso. Como Visual basic possui a inferência de tipo, ou seja, ele [Ô]adivinha[Ô] o tipo da variável de acordo com o valor, passando esses sÃmbolos no final do valor, para indicar o tipo explicitamente, é o mesmo que:
Dim x As Integer = 10
Só que nesse caso, seria:
Dim x% = 10
Não é uma boa prática, mas funciona. Aconselho que use as declarações de variáveis corretamente, de preferência, passando o tipo correto de dados.
For i% = 1 to 10
.....
Next i%
Bem é o mesmo caso. Como Visual basic possui a inferência de tipo, ou seja, ele [Ô]adivinha[Ô] o tipo da variável de acordo com o valor, passando esses sÃmbolos no final do valor, para indicar o tipo explicitamente, é o mesmo que:
Dim x As Integer = 10
Só que nesse caso, seria:
Dim x% = 10
Não é uma boa prática, mas funciona. Aconselho que use as declarações de variáveis corretamente, de preferência, passando o tipo correto de dados.
Certo esse ponto de indicar o tipo de Variavel eu ja havia compreendido , porem neste codigo eles não estão sendo colocados na variavel mas sim no numero que faz parte da formula
((10 / 2) + 5#) * ([txt-color=#e80000]1500# [/txt-color]/ 10#)
seria neste caso ele estar forçando o valro ser do tipo double?
((10 / 2) + 5#) * ([txt-color=#e80000]1500# [/txt-color]/ 10#)
seria neste caso ele estar forçando o valro ser do tipo double?
Essa notação está relacionada ao tipo de variável, conforme tabela anexa. Note que se substituir esse sÃmbolo por outro numérico da tabela vai continuar dando o mesmo resultado, mas com o simbolo $ (String) vai dá erro. Eu penso que seja uma notação desnecessária já que estamos trabalhando com números e não com variáveis ( quem sabe uma notação antiga do vb ou de outra linguagem que o programador inseriu). Não é necessário transformar um integer em double para que o resultado seja double.
Fazendo uns testes vamos perceber que o VB6 interpreta os números antes mesmo dos sinais:
1 - Usando números com decimais notamos que os simbolos (% e &) dão erro porque o sistema já fez a interpretação. Ex: 5.3%, 1.8&
2 - Quando Colocamos (%) em um número interio ou (#) em um número decimal, os simbolos somem porque já é o tipo padrão. Ex 10% = 10 e 8.9# = 8.9
Conclusão: Seu cálculo está convertendo o valor inteiro para duplo desnecessariamente.
Fazendo uns testes vamos perceber que o VB6 interpreta os números antes mesmo dos sinais:
1 - Usando números com decimais notamos que os simbolos (% e &) dão erro porque o sistema já fez a interpretação. Ex: 5.3%, 1.8&
2 - Quando Colocamos (%) em um número interio ou (#) em um número decimal, os simbolos somem porque já é o tipo padrão. Ex 10% = 10 e 8.9# = 8.9
Conclusão: Seu cálculo está convertendo o valor inteiro para duplo desnecessariamente.
Não seria bem [Ô]forçando[Ô] o valor, mas quando você simplesmente passa um número, existe um processo interno que como disse antes [Ô]adivinha[Ô] o tipo de dados, se esse tipo for especificado, é um processo à menos para ser executado, tornando assim, teoricamente, um pouco mais rápido. Claro que para uma simples continha como essa, não teria grandes efeitos, mas imagine um calculo mais complexo executado dentro de um loop umas 100.000 vezes...
Obrigado pela ajuda pessoal
Encontrei um tutorial da Microsoft que explica Como o VB interpreta números, constantes e tipos numéricos
Obrigado pela ajuda pessoal
Tópico encerrado , respostas não são mais permitidas