COMO FORMATATAR NUMERO MAIOR DO QUE 20 POSICOES?

VILMARBR 31/03/2011 14:36:17
#369897
Como formatatar numero maior do que 20 posições tanto no VB/VBA como no VB.Net ???

Tudo feito abaixo não me retornou o campo como ele está no banco de dados, no caso, eu passei hard-coded 123456789012345678901 para mostrar aqui:

x = cstr(Cdbl(123456789012345678901))

?x
1,23456789012346E+20


?format(x,[Ô]00000000000000000000[Ô])
123456789012346000000

?format(x,[Ô]####################[Ô])
123456789012346000000

?format(x,[Ô]#####0000000000######[Ô])
123456789012346000000


Grato desde já!
JONATHANSTECKER 31/03/2011 14:45:40
#369900
Como exatamente você gostaria que o número 123456789012345678901 ficasse após formatado?
KERPLUNK 31/03/2011 14:52:32
#369904
DoBancoVeio = [Ô]123456789012345678901[Ô] [ô]mesmo que for outro tipo de dados, traga como string
x = CDec(DoBancoVeio)

MsgBox [Ô]Original: [Ô] & x
MsgBox [Ô]Pra mostrar que é número: [Ô] & x + 46 & [Ô]([Ô] & x & [Ô])[Ô]
VILMARBR 31/03/2011 16:06:24
#369944
no banco de dados este campo é do tipo NUMBER.

o colega colocou como string, pois tem que mostrar exatamente assim:
123456789012345678901
ou seja, do jeito que está no banco de dados.

mas tem boi na linha aí, não é possível, a microsoft através do VB, VBA e VB.NET não tem outra forma de mostrar um número com muitas posições sem colocar potência de 10 (numeroEpotência) ou como texto !!!!!
JSFF77 31/03/2011 16:24:16
#369954
Boa tarde.

Tente o seguinte:

x = CDec(CAMPO)

MsgBox CStr(x)

que funcionará corretamente.

Sempre que precisar realizar alguma operação utilizando o CAMPO, converta-o com a função CDec(). Exemplo:

a = b / CDec(CAMPO)


Até mais.


JSFF77
VILMARBR 31/03/2011 16:39:42
#369962
ficarrado do mesmo jeito ...

x = cstr(Cdec(123456789012345678901))
?x
123456789012346000000

x = Cdec(123456789012345678901)
?x
123456789012346000000


tks mesmo assim.
MARCELO.TREZE 31/03/2011 17:24:45
#369976
vilmar o campo do banco deve ser texto e o valor também

Dim Valor As String
Valor = [Ô]123456789012345678901[Ô]

só assim funcionara
VILMARBR 31/03/2011 18:25:42
#369979
então, digamos, o vb, vba e vb.net não suportam isto, certo ?
enfim, bug de implementação das linguagens!!!!!

no banco é número.

e como falei, o colega meu deixou texto mesmo a propriedade no vb.net ao receber o valor do oracle number.

eu achei uma solução podre, mas como é limitação da linguagem, podre é a linguagem neste quesito!

vlw!
MARCELO.TREZE 01/04/2011 03:05:28
#370009
Olha Vilmar eu tenho uma teoria pra isto, não acho que seja bug de implementação, porque?

as linguagens desenvolveram campos numéricos para valores aceitáveis, ou seja vc pode ter até 1 milhão, talvez um trilhão, que seria isto.

1.000.000.000.000,00 , onde usará este calculo?

ai vem a pergunta, o que vc fará com este numero, então na realidade as linguagens trabalham com um teto aceitável para numeros, por exemplo ninguém faz calculo com 123456789012345678901, estou certo ou errado? para isto existe o campo texto, pois neste momento vc começa a trabalhar com combinações, onde com 21 caracteres vc terá sei-la trilhoes de combinações.

creio que foi nisto que pensaram entendeu agora

isto é apenas uma teoria minha.


Tópico encerrado , respostas não são mais permitidas