Calculo Price com BigDecimal

Pessoal estou tentando fazer um cálculo usando a fórmula de price. Até o momento consegui faze-la usando double, pelo menos eu acho que está correta, ainda não tive como testar pelo seguinte: estou perdendo precisão e não está batendo o cálculo por conta disso.
Então estou tetando partir pro BigDecimal, porém não sei como conseguir o seguinte:

double prestacao = (presenteValor * taxa_juros) / ((Math.pow(1 + taxa_juros, periodo) / 1) - 1);

Se alguém puder me ajudar.

BigDecimal prestacao = new BigDecimal((presenteValor * taxa_juros) / ((Math.pow(1 + taxa_juros, periodo) / 1) - 1));

segue documentação da classe só olhar o sumário de construtores:
http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html

gejava primeiramente obrigado pelo retorno.

Mas deu a mesma coisa.

retorno antigo 239.0270451930822
retorno atual 239.02704519308218777950969524681568145751953125

Claro que dá igual, só está a passara para BigDecimal o valor final. Aí já perdeu a precisão que tinha de perder.

Feito diretamente aqui, sem testar, será algo assim do género:

BigDecimal taxaJuro = new BigDecima(taxa_juros);
BigDecimal juro = new BigDecimal(presenteValor).multiply(taxaJuro);

BigDecimal divisor= BigDecimal.ONE.add(taxaJuro).pow(periodo).subtract(BigDecimal.ONE);

BigDecimal prestacao = juro.divide(divisor);

A Lógica está correta … só que tem algumas coisas que preciso ajustar, exemplo.

double x = 0.03;
    	double y = 1.0D;
    	double z = x + y;
    	System.out.println(z);
    	
    	
    	BigDecimal xx = new BigDecimal(0.03);
    	BigDecimal yy = new BigDecimal(1.0);
    	BigDecimal zz = xx.add(yy);
    	System.out.println(zz);

O resultado disso está sendo:

1.03
1.0299999999999999988897769753748434595763683319091796875

Nesse caso o Double me deu o resultado correto.
Não sei pq o BigDecimal fez esse Down.
Se a divisão for exata tenho que ter esse valor exato, se tiver fração tenho que pegar essa fração.

Acho que isso aqui está me explicando:

Certo.

Ao utilizar o construtor BigDecimal(double d) podes estar já a perder precisão.

Muito obrigado pela contribuição pmlm. Daqui pra frente é correr atrás do que falta.

Ex: Não estou conseguindo arredondar valores altos como: 239.02704519308246170129411632538559

ABS.