Saltar para conteúdo


Foto
- - - - -

Função POW


  • Por favor inicie sessão para responder
14 respostas a este tópico

#1 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 20 April 2010 - 13:07

Podem-me explicar mais ou menos como funciona a função?vou-vos mostrar o código..capitaldivida=(((taxa/12)/100)*amortizacao)/(1-pow((1+((taxa/12)/100)),-nprestacoes));está bem usado a função pow ?também tenho isto declarado

private int pow(double d, double e) { // TODO Auto-generated method stub return 0;}



#2 livestrong

livestrong

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 20 April 2010 - 15:13

Olá.Sua função não está implementada, sempre retorna 0.Caso queira calcular exponenciação, use a função Math.pow. Para isto declare import java.math.*;Exemplo: Math.pow(2,5) = 2 elevado a 5ª potência = 32.Espero que ajude.

#3 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 20 April 2010 - 15:52

Sim ajudas-te, e já consegui finalmente acabar o Projecto! :DMuito obrigado ;)

#4 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 21 April 2010 - 06:11

Só mais uma coisinha, gostava de poder limitar o texto, para não aparecer caracteres em demasia.. Aqui tem um pequeno print, para perceberem o que pretendo.Já procurei nas propriedades todas, mas nem assim.. Imagem colocada

#5 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 21 April 2010 - 06:33

já encontrei :)obrigado a mesma pessoalPodem-me dizer se existe alguma maneira de limitar o resultado a X casas decimais ?Abraços

#6 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 21 April 2010 - 06:55

laS escreveu:

já encontrei :)obrigado a mesma pessoalPodem-me dizer se existe alguma maneira de limitar o resultado a X casas decimais ?Abraços

Já agora podes explicar como resolveste o problema anterior? Tu sabes, mas se alguém vier investigar o mesmo problema fica sem saber como o resolver.Quanto ao novo problema, usa a classe DecimalFormat

#7 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 21 April 2010 - 07:18

Peço desculpa.Então coloquei isto nas TextView necessárias:Ficheiro Main.xmlQuanto a resposta, eu estou a usar desta maneira:decimal2 = juros;DecimalFormat dec2 = new DecimalFormat("0.00"); System.out.println(dec2.format(decimal2));mas o resultado continua a vir com várias casas decimais.Lembrei-me agora que esta função não serve, porque devia de arredondar..

#8 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 21 April 2010 - 07:23

E arredonda (quase de certeza). em vez de 0.00 mete #.##

#9 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 21 April 2010 - 07:44

Nem uma coisa nem outra :SSupostamente devia de dar: (Resultado)Prestação Mensal: 1.120,01 €Juro Inicial: 265,42 €e da:Prestação Mensal: 11120.009Juro Inicial: 265.4166

#10 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 21 April 2010 - 09:36

laS escreveu:

Nem uma coisa nem outra :SSupostamente devia de dar: (Resultado)Prestação Mensal: 1.120,01 €Juro Inicial: 265,42 €e da:Prestação Mensal: 11120.009Juro Inicial: 265.4166

Alguma coisa estás a fazer mal, porque os numeros não estao formatados. por isso, nem a format está a fazer, quanto mais o arredondamento ;)

#11 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 21 April 2010 - 13:49

Tipo, a única coisa que tenho em relação ao DecimalFormat, é aquele bocado de código que pus ali em cima.Não me consegues ajudar? é que já dei voltas e mais voltas, e o resultado é aquele em cima, ou então da "0.0"

#12 livestrong

livestrong

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 21 April 2010 - 15:14

Olá.Tente assim:BigDecimal resultadoFormatado = new BigDecimal(valor);resultadoFormatado = resultadoFormatado.setScale(2,BigDecimal.ROUND_HALF_EVEN); // Formatando para 2 casas decimaispara imprimir na tela use resultadoFormatado.ToString();Onde eu coloquei BigDecimal.ROUND_HALF_EVEN, você pode substituir por outros tipos de arredondamento (ROUND_DOWN, ROUND_UP, ROUND_FLOOR, etc).Abraço.

#13 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 21 April 2010 - 16:59

livestrong escreveu:

Olá.Tente assim:BigDecimal resultadoFormatado = new BigDecimal(valor);resultadoFormatado = resultadoFormatado.setScale(2,BigDecimal.ROUND_HALF_EVEN); // Formatando para 2 casas decimaispara imprimir na tela use resultadoFormatado.ToString();Onde eu coloquei BigDecimal.ROUND_HALF_EVEN, você pode substituir por outros tipos de arredondamento (ROUND_DOWN, ROUND_UP, ROUND_FLOOR, etc).Abraço.

Esta é outra solução, mas queria evitar esta pois para além de usar mais memória, não é necessária. Mas experimenta esta na mesma.

#14 livestrong

livestrong

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 21 April 2010 - 18:14

Tenta assim também:double valor = 3.03235;String formatado = String.format("%.2f", valor); // O valor da String será 3.03

#15 laS

laS

    Membro

  • Membros
  • PipPip
  • 29 mensagens

Mensagem publicada 28 April 2010 - 08:12

já está resolvido, finalmente.foi isto que fiz:DecimalFormat dec2 = new DecimalFormat("#.##");txtquantia.setText(dec2.format(capitaldivida));txttotal.setText(dec2.format(juros));