[firebase-br] Calculo de imposto com firebird, qual a metodolgia mais indicada ?

Felipe Aron felipearon em gmail.com
Seg Ago 11 17:19:26 -03 2008


Ei amigo use 0.004 ao invés de 0.005

Explicação:
Casa decimal precisa = 3.250 ( Terminado em zero ) +  0.004 = 3.254 e
arredondando dá 3.25 exato.
Agora se a terceira casa for de 1 à 9 somado mais 0.004 sempre irá
arredondar pra cima, no caso:

3.251 + 0.004 = 3.255 que arredenda para 3.26
3.259 + 0.004 = 3.263 que arredenda para 3.26

Sacou ?? :)


2008/8/11 Vinicius Barreira <vinibarr em gmail.com>

> Ficou quase perfeito, o unico problema é que nesse caso aqui valor de 65
> reais sem centavos, dá exatos 3,25 e não precisaria subir para 3,26.
>
> SELECT CAST(3.250+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
>
> Esse exemplo acima retorna 3,26 infelizmente.
>
> Posso fazer uma stored procedure como se fosse uma função, convertendo o
> valor para varchar e analisando a terceira casa decimal, e sendo
> diferente de zero eu aplico o numero mágico !
>
> Obrigado Eduardo, Daniel e Magno !
>
>
> Eduardo Bahiense wrote:
> > Olá Vinícius
> >
> > Use o número mágico 0.005
> >
> > SELECT CAST(3.271+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
> > SELECT CAST(3.279+0.005 AS NUMERIC(15,2)) AS X FROM RDB$DATABASE
> >
> > O fundamento é simples, a coisa não é tão mágica assim, o importante é
> > que funciona.
> >
> > Abraço
> >
> > Eduardo
> >
> > Vinicius Barreira escreveu:
> >
> >> Pessoal, tenho a seguinte situação abaixo, onde eu calculo o ISS via
> >> trigger:
> >>
> >> Valor do serviço: R$ 65,50 - Percentual de ISS: 5% - Valor do ISS: R$
> 3,275
> >>
> >> Eu preciso converter paras 3,28, mesmo que seja por exemplo 3,272; no
> >> caso do imposto, não vale a regra matemática onde se na terceira casa
> >> decimal for abaixo de 5 eu coloco 3,27 e se for acima, 3,28. No caso de
> >> imposto, se tiver qualquer coisa maior que zero na terceira casa tem
> >> sempre que jogar pra cima.
> >>
> >> Na base de dados, o campo referente ao ISS está com quatro casas. Não
> >> deixei com duas justamente porque o arredondamento da terceira casa
> >> segue regras matematicas e não regras fiscais.
> >>
> >> Preciso fazer isso via trigger ou stored procedure; tenho dificuldade em
> >> usar UDF pelo fato de trabalhar com distribuição em larga escala  e UDF
> >> é mais um recurso pra ser "instalado" em clientes, onde a grande maioria
> >> tem windows mas alguns tem linux.
> >>
> >> Agradeço dicas e sugestões.
> >>
> >> Vinicius Barreira
> >> Check-In Informática
> >> Software Para Hotéis / Pousadas / Moteis
> >> São Bernardo do Campo - SP
> >> http://www.check-in.com.br
> >> Fone (11) 4330-3148
> >> msn / e-mail: vinicius em check-in.com.br
> >> skype: vinibarr
> >>
> >>
> >>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
> >>
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Com a força aprenda a suavidade. Através da suavidade a força prevalecerá!

http://www.felipearon.net
http://br.groups.yahoo.com/group/xna-br/



Mais detalhes sobre a lista de discussão lista