Olá, pessoal!
Sou mais um novato em java aqui no fórum, e me deparei com um problema que não consigo resolver. A questão é com o uso da função Math.pow. No tutorial, diz que nem a base, nem o expoente, podem ser números infinitos (dízimas periódicas). Dessa forma, como eu faço para solucionar um problema com uma potência da seguinte forma:
desc = Math.pow(1+desc/100,1/12) -1 ;
Essa fórmula é utilizada para tranformar uma taxa efetiva em nominal. Vou postar o código todo, e caso alguém tenha alguma sugestão, mesmo que seja a outro respeito, ficaria muito grato!
[code]
import java.io.;
import java.text.;
public class SAC {
public static void main (String args[]) {
String Speriodo = "", Svalor = "", Staxa = "", Sdesc;
double periodo = 0, valor = 0, taxa = 0, saldodev = 0,
amort = 0, juros = 0, prest = 0, vpl = 0, vplsoma = 0,
desc = 0.0;
int i = 1;
BufferedReader entrada;
try {
entrada = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Digite o valor: ");
Svalor = entrada.readLine();
valor = Double.parseDouble(Svalor);
System.out.print("Digite o periodo: ");
Speriodo = entrada.readLine();
periodo = Double.parseDouble(Speriodo);
System.out.print("Digite a taxa de juros nominal (% a.a.): ");
Staxa = entrada.readLine();
taxa = Double.parseDouble(Staxa);
System.out.print("Digite a taxa de descontos dos fluxos (efetivas) (% a.a.): ");
Sdesc = entrada.readLine();
desc = Double.parseDouble(Sdesc);
}
catch(IOException e) {
System.out.println("Houve um erro na entrada de dados!");
}
DecimalFormat dec = new DecimalFormat( "0.00" );
amort = valor/periodo;
taxa = taxa/12;
desc = Math.pow(1+desc/100,1/12) -1 ;
saldodev = valor;
while (i <= periodo)
{
saldodev= saldodev-amort;
juros = valor/periodo * (periodo - i + 1) * taxa/100;
prest = amort + juros;
vpl = juros / Math.pow(1 + desc, i);
vplsoma = vplsoma+vpl;
System.out.println(+i+"_____"+dec.format(saldodev)+"_____"+dec.format(amort)+"_____"
+dec.format(juros)+"_____"+dec.format(prest));
i = i+1;
}
System.out.println(+vplsoma+"_____"+desc);
}
} [/code]
Valew!