Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhando C/ Valor Monetário / Moeda


[ GuTo ]

Pergunta

Olá,

Tomei a liberdade de abrir este tópico para debatermos sobre como podemos trabalhar com valores monetários ( moeda / preços / valores comercias ) usando o ASP.

Particularmente, nunca trabalhei com isso.

Logo, gostaria que postassem o que vocês sabem sobre assunto.

Esclarecimentos de possíveis erros ( os mais comuns ).

Como evitar erros na troca de servidor.

Trabalhando com valores monetários de tal páís ( moeda (Real, Dólar, Euro...) ).

Como formatar o valor ao resgatar o valor do BD. (Ex.: R$40,00 )

Qualquer coisa é bem vinda!

Espero não ter incômodado ninguém.

Espero também ampliarmos nossos conhecimentos quanto a este assunto, trocando idéias/experiências e interegindo mais com o pessoal do ASP. biggrin.gif

Até mais,

Abraços! biggrin.gif

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0

Guto !!

beleza?

Brow, vou pendurar este tópico aqui por uns dias, pra dar mais destaque, ok?

Boa iniciativa!

Forte abraço

Link para o comentário
Compartilhar em outros sites

  • 0

bom eu estou fazendo uma loja virtual... ai surgiu esse problema, por equanto to usando access mas no final vou fazer em sql server...

mas em access que que eu fiz ?

joguei como campo tipo moeda, para inserir a sintaxe é essa

800 para R$ 800,00

8.00 para R$ 8,00

789.15 para R$ 789,15

157825 para R$ 157.825,00

reparem que você insere com PONTO e no banco o ponto vira virgula, se você tentar inserir como virgula da erro (bizarro né ?)

A sintaxe é basicamente você por ponto se você quiser colocar os centavos, senão o access sozinho formata o valor... ele coloca as duas casas dos centavos no caso wink.gif

para resgatar os valores do banco você chama normalmente e utiliza a função formatcurrency exemplo

<%=formatcurrency(rs("valor"))%>

ele te retorna certinho com virgulas pontos e R$

se por exemplo você for modificar algum valor, quando você puxa-lo de um replace e mude a virgula para ponto, para na hora de fazer o update não dar erro.

hoje vo ter que trabalhar com EUROs para um site internacional, vou descobrir como que faço isso em access e tal, dai posto aqui caso tiver alguma novidade =)

mas se alguém souber trabalhar com moedas de melhor forma me da um toke =)

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

beleza ae dackale!

Vamos continuar contribuindo com o tópico.

O intuito dele é quando algum de nós precisar trabalhar com valores monetários, usar este como referência, ou seja, vir direto para cá sanar dúvidas, lendo as contribuições e trocas de experiências que nossos colegas de programação ASP compartilharam conosco.

Quem tiver mais alguns toques, dicas, enfim; O que for! Por favor, contribua.

dark0, CyberAlexxx e ursolouco, vocês já mecheram com isso?

Desde já agradeço a grande atenção dos senhores.

Forte abraço pessoal!

Até mais! biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, vamos lá, já trabalhei com e-commerce.

Primeiro, se o banco não tiver um campo específico do tipo moeda eu uso um campo FLOAT.

Eu nunca tive q fazer em mais de uma moeda, mas nesse caso eu faria uma tabela no DB de moedas e teria uma campo para o prefixo "R$", o nome dela e uma campo com o valor dela na cotação de uma moeda base, para fazer as conversões.Acho q dessa forma fica fácil para o usuário atualizar as taxas de câmbio e o sistema não corre risco de integridade.

Pra formatar, acho q uma forma simples é assim:

<%="R$"&formatnumber(valor,2)%>

, porque fica fácil mudar depois se for necessário.

Pra terminar, eu acho q não tem muitas dificuldades em trabalhar com moeda, só gosto de tomar cuidado pra fazer um código flexível, pra não ser pego de surpresa com alterações no futuro.

É isso!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Felipe -

reparem que você insere com PONTO e no banco o ponto vira virgula, se você tentar inserir como virgula da erro (bizarro né ?)

A sintaxe é basicamente você por ponto se você quiser colocar os centavos, senão o access sozinho formata o valor... ele coloca as duas casas dos centavos no caso

não tem nada de errado na programação o programa vai agir do jeito que a gente quer e se dar erro nos que temos culpa e não o sistema, pois o sistema é perfeito e quem erra é os humanos, bom sobre a pergunta voce deve usar um banco apropriado pra guardar moeda e formatar so na saida do banco pra exibir pro usuario e tendo o banco certo e os valores tipados certos voce não vai ter erros nem dor de cabeça rolleyes.gifcool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

E ae Felipe! beleza cara?

Você falow

...voce deve usar um banco apropriado pra guardar moeda...

Pode exemplificar isso pra nós?

Link para o comentário
Compartilhar em outros sites

  • 0

Amigos, a discussão continua, mas vou tirar o destaque desse tópico!

Criei agora um tópico que vai ficar pendurado, linkando este e outros tópicos importantes.

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu não conheço esse tipo double, acho q deve ser o mesmo q float q é o q eu uso.

De qualquer maneira, acho q não tem um tipo certo, depende do caso. Se você for fazer um e-commerce de supermercado por exemplo, eu acho um exagero você colocar 8, porque os valores não vão chegar a cifras tão grandes, mas em outros casos pode até ser necessário mais.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Nao funciona no meu!

Olá..

tentei formatar.. + não consigo....

Linha 392:  <%=formatnumber(Todosp("CODPROD"),2) %><br>
Tipo de erro: Erro em tempo de execução do Microsoft JScript (0x800A138F) Objeto esperado /todosp.asp, line 392
Tentei tambem:
<%=formatcurrency(Todosp("preço"))%>

Aguardo uma ajudinha hehehehe

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Edimar -

Para não usar o R$ na concatenação façam o seguinte:

<%

'Inicio do ASP

'Alterar a região para Brasil

Session.LCID=1046

%>

<html>

<body>

O valor é:<%=formatCurrency(valor,2)%>

</body>

</html>

<%

'Fim do ASP

%>

Link para o comentário
Compartilhar em outros sites

  • 0
você já testou se a variavel não está vazia???

Todosp("CODPROD")

Então tipo como apresentar um resultado 1.000,00 ( sem o R$ )

agradeço

<%

VALOR = "R$ 1.000,00"

Response.Write Replace(VALOR, "R$ ", "")

%>

B)

Link para o comentário
Compartilhar em outros sites

  • 0

Aproveitando este tópico veja o que esta acontecendo:

Tenho um valor que é o seguinte, quando calculo o frete ele retornar certo: R$18,50

Bem este valor tenho que formatar, na pagina de fechamento do pedido e utilizo a seguinte linhda:

<%=formatcurrency(frete)%>

Para minha supresa o valor passa para R$185,00

No fechamento do total geral o valor ficar certo.

Utilizo Banco de dados Access, mas ate ai não esta gravado no banco tudo esta em variavel

e esta variavel frete funciona normal ate chegar a esta formatação, apenas a formatação sai errada.

alguém pode me ajudar???

Claudio Pinho

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...