Campo com 8 digitos após a virgula

Galera eu tinha um campo que era com duas casas decimais mas agora ele mudou para oito casas (15, 8 ), antes eu utilizava o double mais agora não consigo, devo utilizar o BigDecimal ? Preciso de ajuda para formatar o campo para gravar na base, ex.

o usuario digita = 0,0000001, como parar formatar para gravar no Banco ?
E vice-versa.
rs.getBigDecimal(“valor”) = como que eu faço para formatar com 8 casas decimais apos a virgula ?

Qualquer ajuda eu agradeço…

Esta duvida é corrente e foi muito bem explicada na ultima edição da revista MundoJava. Não estou com o meu exemplar aqui no momento, mas sugiro a compra para uma abordagem completa sobre numeros e tipos primitivos.
Mas vc teria que usar BigDecimal mesmo… ou até mesmo um float (esse eu acho, hehe)

Tentei com esse método.

	private static final Locale locale = new Locale("pt", "BR");
	private static final NumberFormat nf = NumberFormat.getNumberInstance(locale);
	
	public static strictfp double toDoubleDecimais(String str, int qtdCasasDecimais) throws ParseException {
		double d = 0;

		nf.setMaximumFractionDigits(qtdCasasDecimais);
		nf.setMinimumFractionDigits(qtdCasasDecimais);

		if (str == null || str.trim().length() == 0) {
		  str = "0";
		}

		d = nf.parse(str).doubleValue();

		return d;
	  }	

Assim mostra a mensagem = 2.0E-8

	public static void main(String[] args) throws Exception {
		System.out.println(toDoubleDecimais("0,00000002",8));
	} 

Mais assim funciona = 0.11213212

Podem me ajudar ?

[quote=rodrigoallemand]Esta duvida é corrente e foi muito bem explicada na ultima edição da revista MundoJava. Não estou com o meu exemplar aqui no momento, mas sugiro a compra para uma abordagem completa sobre numeros e tipos primitivos.
Mas vc teria que usar BigDecimal mesmo… ou até mesmo um float (esse eu acho, hehe)[/quote]

Cara acabei de ler o artigo, mais não ajudou… :cry: :cry:

[quote=rodrigoallemand]Esta duvida é corrente e foi muito bem explicada na ultima edição da revista MundoJava. Não estou com o meu exemplar aqui no momento, mas sugiro a compra para uma abordagem completa sobre numeros e tipos primitivos.
Mas vc teria que usar BigDecimal mesmo… ou até mesmo um float (esse eu acho, hehe)[/quote]

Cara acabei de ler o artigo, mais não ajudou… :cry: :cry:

Consegui,

A unica solução que eu encontrei foi tirar os pontos e depois substituir a virgula por ponto…

ex.

1.222.333,00005007 = 1222333.00005007

funcionou…
:smiley:

Valeu…