Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JucaMaster

Como fazer esta função...

Recommended Posts

Galera salve-salve, Eu estou quebrando a cabeça com uma função que eu não consigo fazer. Voudescrever oq eupreciso: Eu tenho uma variável que recebe um valor vindo do banco. Este valor vem do campo valor_parcela. Eu preciso gerar um boleto pelo banco do brasil mas eles não aceitam nenhum tipo de formatação.Tipo eu tenho que mandar assim: Se for R$ 100,00 tem que assumir 10000Até aí tudo certo eu sei remover esta vírgula mas e quando ele vem quebrado? tipo assim: R$ 150,5 eu preciso ver quantas casas decimais ele tem depois da vírgula e colocar um zero para ele assumir 15050, senão o sistema vai encarar como 1505. Como fazer esta função para gerar esta formatação? Por favor me ajudem!! Valew Galera JucaMaster

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem mil maneiras de se fazer neston, parceiro! HAUhaUHAUhaU... Dá hora essa propaganda.. HUAhaUha

 

Tenta alguma coisa do tipo...

 

Function Formatar(valor)	Formatar = Replace(trim(valor),".",";")	Formatar = Replace(trim(Formatar),",",".")	Formatar = Replace(trim(Formatar),";",",")End Function

Tenta partir por esse princípio parceiro, talvez não funcione de primeira, pois nunca precisei fazer exatamente isso... Mas para evitar ter que fazer cálculos, tente partir para esse lado.

 

- Fernando Botelho

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma function aqui, espero que ajude:

function check(v)s = split(v,",")  if Len(s(1)) = 1 then    cs = s(1) & "0"    c = s(0) + cs  Else    c = s(0) + s(1)  End ifcheck = cEnd function a = "150,5"Response.write check(a)

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma function aqui, espero que ajude:

function check(v)s = split(v,",")  if Len(s(1)) = 1 then    cs = s(1) & "0"    c = s(0) + cs  Else    c = s(0) + s(1)  End ifcheck = cEnd function a = "150,5"Response.write check(a)
Opa eae rock beleza? Eu não entendi o fim do código onde você manda exibir o valor de "a". Poderia me explicar o código por favor? Valews pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae rock, Eu coloquei o seu código e funfa beleza. Mas quando eu jogo a minha variável gera este erro. Microsoft VBScript runtime error '800a0009'Subscript out of range: '[number: 1]'/teste/pagar_mensalidade.asp, line 44Aqui vai a perte do seu códigoPegaValor = Request.QueryString("Valor")function check(v)s = split(v,",") if Len(s(1)) = 1 then '--> esta é a linha 44 com erro!!! cs = s(1) & "0" c = s(0) + cs Else c = s(0) + s(1) End ifcheck = cEnd functiona = PegaValorResponse.write check(a)response.End()Pelo que eu entendi ficaria assim....mas naum consegui...se tu puder dar uma olhadinha...... Valews JucaMaster

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Juca, beleza:?acho que terá que converter, nao sei como está o campo do seu BD, lá ele é que tipo:?Mas se for tipo string, funfa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Juca, beleza:?acho que terá que converter, nao sei como está o campo do seu BD, lá ele é que tipo:?

Putz cara na verdade estes dados estão no access e estão vinculados em um txt. Eu teria que convertyer eles para que? Número ou texto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae crazy tudon certo Então, eu jah fiz isso e jah até transformei em numérica mas naum dá.... Será que é por causa da formatação que está entrando? O valor que está vindo na minha variável é 90 redondo. Será que pode ser isso? ;) :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como?

 

90

 

5,90

 

você fala os centavos ou os reais?sem virgulas?

pode dar um exemplo?

 

tem essa funçãozinha q o tarkan fez...ela formata a moeda

 

<%Function FormataMoeda(string)s1 = InStr(string,",")If s1 = 0 or s1 = 1 ThenFormataMoeda = "Erro"Elses2 = Mid(string, s1 + 1, Len(string))s3 = Mid(string, 1, s1 - 1)If Len(s2) = 1 Thens2 = s2 & "0"End IfFormataMoeda = s3 & "," & s2End IfEnd Functionvalor = "549,5"Response.Write FormataMoeda(valor)%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não precisa enrolar tanto...Mais simples do que isso, impossível:

<%function tratavalores(string)    on error resume next    tratavalores = replace(string,",","")end functionresponse.write tratavalores("150,55")%>

Abraços, boa sorte! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, como eu gostaria de saber um pouco mais de ASPSe fosse em C seria muito facil: multiplica por 100 e faz casting p/ int (pega so a parte inteira do numero)Espero ter ajudado, ou que alguem que tenha nocao de como faz isso em ASP possa te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se agora vai:

function check(v)if Instr(v,",") = 0 Then c = vElses = split(v,",")  if Len(s(1)) = 1 then    cs = s(1) & "0"    c = s(0) + cs  Else    c = s(0) + s(1)  End if End ifcheck = cEnd function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aff...Esquece o que falei...Agora que entendi seu erro!Quando chegar em casa, eu faço alguma coisa pra tentar ajudar.Agora, aqui no trabalho: impossível.Espero que outras pessoas consigam ajudar enquanto isso.Abraços, boa sorte! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae rock Deu certo cara..mas ainda estou com um probleminha.... Se o valor da minha variável vier sem a vírgula? Tipow oq está acontecendo é que se a variável por exemplo venha com o valor de 90 reais sem a formatação ele mantem os 90 e eu precisava que ele acrescentasse 00 no fina, assumindo 9000. Vou dar uma olhadinha aqui e qq coisa eu posto aqui.... Valew galera!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

AEEEEE Galera Consegui fazer funcionar perfeitamente!!!! Eu fiz o seguinte Se o valor vier como inteiro tipo PegaValor = 90 Eu acrescento um .0 no valor da variável e a função encara normalmente como se fosse um número quebrado. Obrigado ae galera....valew rock depois a gente toma um refri por ae...hiuahauhauahuaha :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.