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”);
Obrigado!
[code]import java.math.BigInteger;
public class StringBigInteger {
public static void main(String[] args) {
String inteirao = "1000000000000000000";
BigInteger bigInteger = new BigInteger(inteirao);
System.out.println(bigInteger);
}
}[/code]
Abs!
Danilo
import java.math.BigDecimal;
import javax.swing.JOptionPane;
public class Principal {
public static void main(String[] args) {
int meses,count=1;
String inputJuros, inputSaldo, inputMeses;
inputSaldo = JOptionPane.showInputDialog(null, "Favor inserir o valor a ser depositado");
BigDecimal saldo = new BigDecimal(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)");
BigDecimal juros = new BigDecimal(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!
É 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.
BigDecimal
Obrigado thiago, mas não custava nada me informar os métodos correspondentes agora eu achei, olha como que ficou meu código.
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.*;
import javax.swing.JOptionPane;
public class Principal {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat ("#,##0.00", new DecimalFormatSymbols (brasil));
int meses,count=0;
String inputJuros, inputSaldo, inputMeses;
BigDecimal um = new BigDecimal(1.00);
inputSaldo = JOptionPane.showInputDialog(null, "Favor inserir o valor a ser depositado");
BigDecimal saldo = new BigDecimal(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)");
BigDecimal juros = new BigDecimal(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));
}
}
}
faltou o locale.
Locale brasil = new Locale (“pt”, “BR”);
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.