String -> int

5 respostas
P

Olá, primeiramente bom dia
gostaria de uma ajuda aqui, com um problema que eu estou tendo na hora
de converter o valor de uma string pra int vou postar aqui, quem puder dar
uma atenção ai, ficaria agradecido!

valor = linha4.substring(60).trim();
 intValor = (int) Integer.parseInt(valor);
[color=red]

03-01 10:16:54.656: E/AndroidRuntime(449): java.lang.NumberFormatException: unable to parse ‘12.00’ as integer

03-01 10:16:54.656: E/AndroidRuntime(449): at java.lang.Integer.parse(Integer.java:383)

03-01 10:16:54.656: E/AndroidRuntime(449): at java.lang.Integer.parseInt(Integer.java:372)

03-01 10:16:54.656: E/AndroidRuntime(449): at java.lang.Integer.parseInt(Integer.java:332)

03-01 10:16:54.656: E/AndroidRuntime(449): at curso.android.packge1.ConfigActivity.impPizza(ConfigActivity.java:405)

[/color]

5 Respostas

Polverini

o erro esta ai na primeira linha

java.lang.NumberFormatException: unable to parse ‘12.00’ as integer

efetue a retirada do .00 deixe so 12 ou use double.

edit: da uma olhada na documentação http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html

natanaelv

Além do que foi citado pelo Polverini o casting para (int) se torna desnecessário
já que o método parseInt da classe Integer retornará um int.

yfalbino

nao sei se irá ajudar, mas tente isso:

valor = linha4.substring(60).trim(); System.out.println(String.format("%.0f", Double.parseDouble(valor)));

se quizer que apareça o numero com 2 casas depois da virgula, tente assim:

valor = linha4.substring(60).trim(); System.out.println(String.format("%.2f", Double.parseDouble(valor)));

espero ter ajudado

P
  • Obrigado a todos, consegui resolver assim
valor = linha4.substring(60).trim(); 
double doubleValor = Double.parseDouble(valor);
N

Também poderia ter sido feito:

valor = linha4.substring(60).trim(); intValor = (int) Double.parseDouble(valor);

Criado 1 de março de 2013
Ultima resposta 5 de mar. de 2013
Respostas 5
Participantes 5