Pessoal recebe de um jText um sequencia de números, por ser uma sequencia muito grande não dá para usar um int.
Tem como eu passar essa String para BigDecimal?
Ou é preciso usar outro recurso para isso?
Existe um construtor de BigDecimal que recebe um string como parâmetro.
new BigDecimal("11111111111111111111.222222222") ; // ou uma String qualquer...
e este construtor dispara NumberFormatException caso haja algum problema durante a conversão…
Fique atento para o seguinte:
BigDecimal foo = new BigDecimal("0.1");
BigDecimal bar = new BigDecimal(0.1d);
System.out.println(foo.equals(bar)); // imprime false...
Isso ocorre pois 0.1 não é representado precisamente utilizando double… Sempre que trabalhar com BigDecimal prefira o construtor usando String.
Só uma pergunta, você precisa mesmo utilizar BigDecimal? ou só está tentando ler um “inteiro grande”? se for este o caso existe o BigInteger. Sendo que ambos são imutáveis, ou seja foo.add(“2”) não altera o valor de foo, temos que escrever foo = foo.add(“2”);
Valeu.
a) Se a tal seqüência não for tão grande assim, use um long.
b) Se na verdade a seqüência tem números e letras, use uma string mesmo. (Por exemplo, um número de RG pode ter o “dígito” verificador “X”, que até onde sei é um número, mas em algarismos romanos.
Valeu pelas dicas, mas a sequencia é grande e é composta somente por números.