NUMERO SEGUIDO POR # NO VISUAL BASIC

USUARIO.EXCLUIDOS 24/08/2012 16:13:58
#408603
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
LUIZCOMINO 24/08/2012 16:28:03
#408604
ele transforma em double
olha esse tópico

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=357175
KERPLUNK 24/08/2012 16:32:44
#408605
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.
USUARIO.EXCLUIDOS 24/08/2012 16:43:26
#408607
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?
ROBIU 24/08/2012 17:01:38
#408610
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.

KERPLUNK 24/08/2012 17:17:59
#408613
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...
USUARIO.EXCLUIDOS 27/08/2012 14:10:24
#408707
Obrigado pela ajuda pessoal
ROBIU 29/08/2012 08:41:03
#408816
Resposta escolhida
Encontrei um tutorial da Microsoft que explica Como o VB interpreta números, constantes e tipos numéricos
USUARIO.EXCLUIDOS 29/08/2012 09:13:21
#408826
Obrigado pela ajuda pessoal
Tópico encerrado , respostas não são mais permitidas