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.
P
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).
R
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…
S
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);}
}
T
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
T
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
T
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.