Subtracao ..String Long

Galera…to quebrando o cranio para fazer uma subtracao da seguinte linha

   Long Num = new Long(rs.getLong("id"));

Este campo pega dados de um banco que tem 6 digitos(ex: 123456)

Problema que o mesmo nao pode ter alem de 5 digitos …e quando eu chamo ele numa classe…ele da erro


  calcula.setNum(Num);

Alguem tem alguma ideia? por exemplo, dividir por 1000 ou subtrair a primeira casa…

abs

Cara o objeto Long permite valor maior que 999999, o erro deve ser outra coisa.
você pode dizer qual a exception q está havendo?
o que você faz com num dentro de calcula.setNum(Num)?

Entao luciano…problema nao é o “Long…”

Ele recebe um valor de um campo de uma tabela e joga numa outra tabela…

Só que o campo que ele esta pegando, esta com 6 digitos…

Na hora que vou jogar na outra tabela…da erro, pq o tamanho maximo é de 5 digitos…entende?(ex. 12345)…

…Esse é o problema…por isso eu queria fazer um processo no meio do “caminho” para jogar na outra tabela o valor correto ja…

Primeiro de tudo. Por que existe essa inconsistência?

Você até pode “engolir” um dígito, mas isso abrirá chance de duplicação.

Acho melhor você ir até a raiz do problema, que é identificar porque os ids são incompatíveis. Isso provavelmente é um problema muito maior do que só remover um dígito.

Cara dessa forma você vai estar perdendo uma casa significativa no seu valor, se for possivel aumenta o tamanho maximo da coluna.
se não for possivel cria uma coluna flag 1/0 que indica se o valor foi dividido pro mil. Pelo menos dessa forma vc tem como saber se tem q multiplicar o valor quando for recuperar.

Valeu pela resposta…Entao deixa eu detalhar mais o processo

Vai ser gerado um numero de nota fiscal…automatico

Diante disso, é gerado um boleto na compra…existe um campo no boleto que é o numero do conveio do cara com o banco…+ este numero de nota fiscal

Acontece que o campo por padrao tem 5 digitos(imposto pelo campo do boleto do banco)

Entao, quando eu pego o campo do numero da nota fiscal…e jogo no campo do boleto(para identificar o cliente) ele da erro, visto que ja esta com 6 digitos(exe> 150000)

Por isso, essa questao…

Melhor perguntar para o dono do sistema o que é para fazer. O certo seria aumentar o campo do número da nota fiscal no boleto (e olha que já considero 6 digitos muito pequeno).

Fala xara…

Acho que o que voce esta querendo pelo que entendi, nao é aumentar o campo da nota fiscal, mas pegar o campo da NF e jogar no campo do boleto(essa pratica é comum para vc identificar qual cliente comprou )

Sendo assim, a questao nao é aumentar o campo, mas diminuir um digito do ID que esta vindo da NF…(partindo do principio que nao pode alterar o campo da NF e do boleto)

algo como

num1=rec.getDouble("valor1"); //poderiamos por um valor fixo e elastico aqui como por ex: 100.000
num2=rec2.getDouble("valor2"); 
num=num1-num2; // se o campo que ele menciona esta em 134000  vai ficar como 34000

Isso é só pra entender por favor…o certo mesmo seria aumentar o campo do BOLETO no meu ver…

…Se esse é o problema…Entao, isso “quebra seu galho”


    Long Num = new Long(rs.getLong("id")-100000);  

Mas lembre-se, quando seus pedidos chegarem a 200.000(nao sei a sua realidade). Voce voltara a ter esse problema…

Ate++