parece correto sim, se esta classe NumericHelper fizer tudo o que se propoe… só um errim bobo, na linha 6, ao invés de vc subtrair vc tem que multiplicar.
peczenyj
Vc não sabe fazer contas, apelou pra um codigo pego em algum google da vida e quer saber se esta correto?
IMHO não precisa de uma NumericHelper . Se vc quer saber se o código funciona utilize uma suite de testes automatizados (como via Junit – cujo tutorial vc encontra aqui no Guj).
rodrigo_gomes
Olá,
Só mais uma questão: normalmente as contas envolvendo cálculo de accrual envolve muitas casas decimais, e muita precisão. Então, se eu fosse você trocaria o double por BigDecimal, só pra não perder uns centavos por aí.
[]´s
K
klebergf
Opa, So para reforçar, sou mais um a favor de BigDecimal para calculo.
Z
zezinho
peczenyj:
Vc não sabe fazer contas, apelou pra um codigo pego em algum google da vida e quer saber se esta correto?
IMHO não precisa de uma NumericHelper . Se vc quer saber se o código funciona utilize uma suite de testes automatizados (como via Junit – cujo tutorial vc encontra aqui no Guj).
Cara vc é retardado ? Como vc pode afimar que eu peguei esse código na net ? Eu não quero saber se o código esta correto, e sim se as instruções que eu usei estão.
E este "IMHO " que dizer burro ?
Z
zezinho
peczenyj:
Vc não sabe fazer contas, apelou pra um codigo pego em algum google da vida e quer saber se esta correto?
IMHO não precisa de uma NumericHelper . Se vc quer saber se o código funciona utilize uma suite de testes automatizados (como via Junit – cujo tutorial vc encontra aqui no Guj).
E outra seu idiota, NumericHelper é uma classe útil de minha autoria que eu utilizo para realizar calculos simples como (+, / , *, -).
Z
zezinho
rdgc:
Como foi dito, use BigDecimal, mas use para tudo, troque os tipos primitivos por ela.
Tbm acho que vc não precisa da NumericHelper, com o BigDecimal vc faz tudo. Divida sua fórmula em partes, fica mais simples.
flws!
blz… Substitui aonde eu pude.
publicBigDecimalgetJurosAcruado(finalintdiasUteis,finaldoubletaxaRecompra,
finalBigDecimalvalorNotional)throwsCalculoException{
BigDecimaljurosAcruado=newBigDecimal(0.0d);try{
jurosAcruado=newBigDecimal(NumericHelper.subtract(taxaRecompra,100)+1);jurosAcruado=newBigDecimal(Math.pow(jurosAcruado.doubleValue(),NumericHelper.subtract(diasUteis,252)));jurosAcruado=jurosAcruado.multiply(valorNotional);jurosAcruado=jurosAcruado.subtract(valorNotional);}catch(Exceptione){
thrownewCalculoException("Erro ao calcular o juros acruado ",e);}returnjurosAcruado;}
Z
zezinho
Menos mal…
sergiotaborda
zezinho:
Pessoal como que eu faria para utilizar essa fórmula em java ?
Esta solução esta correta ?
Não. Vc está usando subtract onde deveria usar divisão.
Nota: Quando trabalhando com dinheiro não usem BigDecimal usem o padrão Money.
simplifica muito a sua vida
publicMoneygetJurosAcruado(finalintdiasUteis,finaldoubletaxaRecompra,
finalMoneyvalorNotional)throwsCalculoException{
try{
BigDecimalfactor=newBigDecimal(Math.pow(taxaRecompra/100d+1,diasUteis/252d))returnvalorNotional.multiply(factor).subtract(valorNotional);}catch(Exceptione){
thrownewCalculoException("Erro ao calcular o juros acruado ",e);}
}
tnaires
sergiotaborda:
Nota: Quando trabalhando com dinheiro não usem BigDecimal usem o padrão Money.
simplifica muito a sua vida
Para o cálculo em si, acredito que não há como fugir de BigDecimal. O Money ao meu ver será um wrapper do BigDecimal, com alguma lógica a mais inerente ao dominio dele, como conversão de moeda, por exemplo.
Ah propósito, o padrão money em si não conheço, Money é um exemplo do padrão Value Object.
[]´s
tnaires
rodrigo_gomes:
Ah propósito, o padrão money em si não conheço, Money é um exemplo do padrão Value Object.
[]´s
Não estou questionando o que você disse, mas Money é um exemplo direto do padrão Quantity e indireto de Value Object.
Money >> Quantity >> Value Object
Dê uma olhada no link que passei acima.
Z
zezinho
sergiotaborda:
zezinho:
Pessoal como que eu faria para utilizar essa fórmula em java ?
Esta solução esta correta ?
Não. Vc está usando subtract onde deveria usar divisão.
Nota: Quando trabalhando com dinheiro não usem BigDecimal usem o padrão Money.
simplifica muito a sua vida
publicMoneygetJurosAcruado(finalintdiasUteis,finaldoubletaxaRecompra,
finalMoneyvalorNotional)throwsCalculoException{
try{
BigDecimalfactor=newBigDecimal(Math.pow(taxaRecompra/100d+1,diasUteis/252d))returnvalorNotional.multiply(factor).subtract(valorNotional);}catch(Exceptione){
thrownewCalculoException("Erro ao calcular o juros acruado ",e);}
}
Blz cara valeu, agora a questão do Money não será possível pois infelizmente o cliente ainda usa o java 1.3. :x
tnaires
Money é um padrão, e não um recurso atrelado a uma versão da plataforma Java.
…
Nota: Quando trabalhando com dinheiro não usem BigDecimal usem o padrão Money.
simplifica muito a sua vida
Para o cálculo em si, acredito que não há como fugir de BigDecimal. O Money ao meu ver será um wrapper do BigDecimal, com alguma lógica a mais inerente ao dominio dele, como conversão de moeda, por exemplo.
Tem sim como fugir do BigDecimal. A implementação de Money não tem que usar BigDecimal. Money não é um wrapper de BigDecimal. É a especialização do padrão Quantity. ( está associado a uma unidade : a moeda)
" E outra seu idiota, NumericHelper é uma classe útil de minha autoria que eu utilizo para realizar calculos simples como (+, / , *, -)."
Qual a utilidade de uma classe que realiza cálculos já oferecidos por operadores primitivos? Se for algum padrão de projeto, por favor, me expliquem…Me parece algo bastante inútil…
R
rdgc
Como foi dito, use BigDecimal, mas use para tudo, troque os tipos primitivos por ela.
Tbm acho que vc não precisa da NumericHelper, com o BigDecimal vc faz tudo. Divida sua fórmula em partes, fica mais simples.
flws!
R
rdgc
zezinho:
peczenyj:
Vc não sabe fazer contas, apelou pra um codigo pego em algum google da vida e quer saber se esta correto?
IMHO não precisa de uma NumericHelper . Se vc quer saber se o código funciona utilize uma suite de testes automatizados (como via Junit – cujo tutorial vc encontra aqui no Guj).
Cara vc é retardado ? Como vc pode afimar que eu peguei esse código na net ? Eu não quero saber se o código esta correto, e sim se as instruções que eu usei estão.