Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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)
>
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 ajudaAe 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
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...
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?
da um CStr na variavel
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:
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)%>
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
agora entendi o erro, é pq o valor da variável veio sem a virgula, vou ver se ajeito o código!
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...
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
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
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!!!!
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
opa, vlw juca, agente se bate por ai... hehehe
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.