Apache POI - Obter valor de célula

2 respostas
Sansalone

Olá pessoal!

Estou com um problema pra obter um valor numérico de uma célula. Quando o valor é muito grande, ele vem como notação científica e se eu converto pra string ele continua!

Jah tentei:

1-
double d = minhaRow.getCell(1).getNumericCellValue();
// O valor em d fik 1,23E+14
// se converter para String fik a mesma coisa

2-

NumberFormat nf = NumberFormat.getInstance();

String s = nf.format(d); // o valor agora está “123.000.000.000.000”

s = s.replace(".","");

Double d = new Double(s);// o valor VOLTA para 1,23E+14

Como eu faço pra pegar esse valor em notação científica e obter o valor real?

2 Respostas

G

amigo, seu problema está em não passar o formato desejado. segue um exemplo:

NumberFormat nf = new DecimalFormat("#.#"); 
		String s = nf.format(1.23E+14d); // o valor agora está "123.000.000.000.000" 
		System.out.println(s);

nesse DecimalFormat("#.#"); vc define, com regex, a formatação correta que vc quer.

Sansalone

Obrigado!! Consegui resolver o problema!

Criado 20 de junho de 2012
Ultima resposta 21 de jun. de 2012
Respostas 2
Participantes 2