Olá
Pessoal
Tenho duas variaveis uma do tipo long e outra do tipo Integer gostaria de fazer um parser de long para integer como faço?
long v_valor_log = 122222;
int v_valor_integer = 0;
Grato
Olá
Pessoal
Tenho duas variaveis uma do tipo long e outra do tipo Integer gostaria de fazer um parser de long para integer como faço?
long v_valor_log = 122222;
int v_valor_integer = 0;
Grato
uma maneira:
try{
Long n = 2342342334872364782l;
Integer n1= Integer.valueOf(n.toString());
System.out.println(n1);
}catch (Exception e) {
System.out.println("Capacidade do Integer estourou.");
}
Olá marcosharbs
Estou tendo esse erro ao tentar fazer da forma como vc disse:
Cannot invoke toString() on the primitive type long
Segue meu codigo:
long v_valor_log = 222222888;
Integer v_valor_integer = 0;
try{
v_valor_integer = Integer.valueOf(v_valor_log.toString());
}catch (Exception e) {
System.out.println("Capacidade do Integer estourou.");
}
Utilize Long com L maiúsculo
o long com l minúsculo é do tipo primitivo o método toString() é da classe Object do java a qual todos os objetos decendem direta ou indiretamente
portando usando o long (tipo primitivo) vc realmente não terá esse método, mas se vc usar um Long vc terá.
valeu marcosharbs funfou!!!
[quote=Silva03]Olá marcosharbs
Estou tendo esse erro ao tentar fazer da forma como vc disse:
Cannot invoke toString() on the primitive type long
Segue meu codigo:
long v_valor_log = 222222888;
Integer v_valor_integer = 0;
try{
v_valor_integer = Integer.valueOf(v_valor_log.toString());
}catch (Exception e) {
System.out.println("Capacidade do Integer estourou.");
}
[/quote]
Olá Amigo
Tem que declarar como Objeto Integer ou Long
int e long minusculos são tipos primitivos em java
Por isso o toString() não funciona.
Esse artigo http://www.criarweb.com/artigos/630.php Explica bem direitinho
de nada
=D
[code] Integer i = Integer.valueOf(123456);
Long l = Long.valueOf(1234567890);
/*
* 'Converte' de Long para Integer.
* Vale lembrar da perda da precisão
* ao realizar a conversão... Afinal
* O brasil não cabe dentro de São Paulo
**/
Integer i2 = Integer.valueOf((int) l.longValue());
//Sem problemas
Long l2 = Long.valueOf(i.longValue());
[/code]
Espero ter ajudado!
Eu estou lendo certo? Você estão mandando ele criar objetos, só para converter o valor de uma variável long em int? Estou me baseando no exemplo, pois embora ele tenha falado em Integer, a variável dele no exemplo está declarada como int.
Para isso, basta um simples typecast:
long var1 = 1827182761L;
long var2 = (int) var1;
Só tome cuidado que, como o long é maior que o int, pode haver perda de informação. Afinal, o número do long pode ser maior do que o int é capaz de suportar. Nesse caso, o java não dará qualquer tipo de erro. O que ele fará é simplesmente eliminar os bits da parte mais significativa do dado.
[quote=ViniGodoy]Eu estou lendo certo? Você estão mandando ele criar objetos, só para converter o valor de uma variável long em int? Estou me baseando no exemplo, pois embora ele tenha falado em Integer, a variável dele no exemplo está declarada como int.
Para isso, basta um simples typecast:
long var1 = 1827182761L;
long var2 = (int) var1;
Só tome cuidado que, como o long é maior que o int, pode haver perda de informação. Afinal, o número do long pode ser maior do que o int é capaz de suportar. Nesse caso, o java não dará qualquer tipo de erro. O que ele fará é simplesmente eliminar os bits da parte mais significativa do dado.[/quote]
Sim Vini, vc esta certo, surgiu uma certa confusão sobre o que ele realmente quer!
Deixando um pouco mais claro… no seu mesmo exemplo…
long var1 = 1827182761L;
int var2 = (int) var1;
Ajudou aqui, obrigado !
Eu faço assim para números abaixo de 2 bilhões,
ou adaptando pode ficar especifico pro valor máximo do Integer.
Integer NUMconvertido;
if (longOriginal > (long) 2000000000){
NUMconvertido = (int)2000000000;
}else{
String converteNUM = String.valueOf(longOriginal);
NUMconvertido = Integer.valueOf(converteNUM);
}