Campo com 8 digitos após a virgula

5 respostas
Licuri

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…

5 Respostas

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)

Licuri

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 ?

Licuri

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)

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

Licuri

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)

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

Licuri

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…

Criado 22 de maio de 2007
Ultima resposta 23 de mai. de 2007
Respostas 5
Participantes 2