Produto p = new Produto() ;
ProdutoDAO dao = new ProdutoDAO();
p.setDescricao(txtDesc.getText());
p.setQtd(Integer.parseInt(txtQtd.getText()));
p.setPreco(Double.parseDouble(txtPreco.getText()));
dao.create(p);
Estou criando uma interface e mandando os valores para o banco de Dados , mas quando o usuário utiliza Virgula no lugar de ponto meu programa da erro , como eu faço para que ele aceite virgula e ponto no campo preço ? . Desde já obrigado .
Dito isso, vc precisa pensar no seguinte: um preço É Double?
vc realmente tem um valor de ponto flutuante de dupla precisão? tipo 0.000000000001 ? pode ser negativo?
as vezes o preço é um multiplo de centavos. Vc em algum momento pode precisar de um objeto mais adequado ( uma classe Money, não sei pq java não tem isso ).
dinheiro é um exemplo de quantidade de ponto fixo, onde vc tem duas ou tres casas decimais. vc pode fazer uma aproximação e salvar um valor inteiro que corresponda aos centavos.
agora de forma alguma vc pode usar double ( ou float ) em dinhero no mundo real (ou, pelo menos, em sistemas de contabilidade). os problemas de arredondamento inerentes ao ponto flutuante pode trazer inconsistencias importantes.
BigDecimal por si tem varias vantagens em relação aos tipos numericos primitivos porém a performance é ligeiramente menor. Vc só deve se preocupar com isso no caso de vc estar efetuando algo como algum calculo numerico onde vc faz muitas operações ( e olhe lá ).