Como converter uma String para BigDecimal (RESOLVIDO)
7 respostas
X
XtremeBH
Usando a classe JOptionPane estou solicitando ao usuário para inserir um valor, essa variável é do tipo String(inputSaldo), porém para ter valores mais exatos e fazer calculos financeiros quero converter esse valor para BigDecimal, já tentei valueof, ToString. Se essa operação não for possível gostaria de saber um modo de inserir o dado atravéz de interface gráfica diretamente como BigDecimal.
Obs: quando eu fazia utilizando double, Integer e etc, eu utilizava o comando Integer.Parseint();
inputSaldo = JOptionPane.showInputDialog(null, “Favor inserir o valor a ser depositado”);
publicstaticvoidmain(String[]args){intmeses,count=1;StringinputJuros,inputSaldo,inputMeses;inputSaldo=JOptionPane.showInputDialog(null,"Favor inserir o valor a ser depositado");BigDecimalsaldo=newBigDecimal(inputSaldo);inputMeses=JOptionPane.showInputDialog(null,"Favor inserir o valor a quantidade de meses que este valor irá render");meses=Integer.parseInt(inputMeses);inputJuros=JOptionPane.showInputDialog(null,"Favor digitar a taxa de juros mensais)");BigDecimaljuros=newBigDecimal(inputJuros);while(count<=meses){saldo=saldo*(juros+1.00);count++;JOptionPane.showMessageDialog(null,"Seu saldo no mes "+meses+" é de R$"+saldo);}}
}
Galera esse que é o meu código usando a dica de como converter String pra BigDecimal, porém surgiu outro problema, quando eu coloco juros + 1.00 a Ide reclama que não está no formato BigDecimal “Já tentei de diversas formas” e mesmo quando eu tiro o 1.00 a ide reclama que não está definido na classe BigDecimal o que fazer quando estiver o simbolo * (q é multiplicar) me ajudem por favor.
Obrigado!
T
thingol
É bom ler a documentação de vez em quando. A classe BigDecimal não redefine os operadores (+, -, *, /) e você precisa chamar os métodos correspondentes.
inputSaldo=JOptionPane.showInputDialog(null,"Favor inserir o valor a ser depositado");BigDecimalsaldo=newBigDecimal(inputSaldo);inputMeses=JOptionPane.showInputDialog(null,"Favor inserir o valor a quantidade de meses que este valor irá render");meses=Integer.parseInt(inputMeses);inputJuros=JOptionPane.showInputDialog(null,"Favor digitar a taxa de juros (mensais)");BigDecimaljuros=newBigDecimal(inputJuros);while(count<meses){saldo=saldo.multiply(juros.add(um));//multiply multiplica e add soma count++;JOptionPane.showMessageDialog(null,"Seu saldo no mes "+count+" é de R$"+df.format(saldo));}}
}
X
XtremeBH
faltou o locale.
Locale brasil = new Locale (“pt”, “BR”);
T
thingol
Bom, um carinha que trabalha comigo (e meu nome não é Thiago ! ) até tem um login no GUJ, mas tem medo de postar, porque eu não sou muito paciente e logo mando ler o Javadoc - é claro que para ele é mais fácil me perguntar direto.