Galera to com um problema.
Recebo um valor xxx.xxxx e quero adicionar +1 a esse valor a cada entrada
ela eh uma string pois usa mascara, retiro a mascara coloco em um long adiciono mais 1
volto para a string adiciono o ponto “.” da mascara e retorno o valor .
o problema é que os 3 primeiro digitos sao fixos supor 107.0000
entao vou incrementando esse valor so que quando chegar no 107.9999
ele passa o valor para 108.000
e nao é isso que eu quero keru q quando chege em 107.9999 ele va para 107.10000
o codigo é esse:
public String trasformar (String inscricao){
inscricao = mask.Mask(inscricao);
long trasformacao;
String inscricao2 =null;
trasformacao = Long.parseLong(inscricao);
trasformacao = trasformacao+1;
inscricao2 = Long.toString(trasformacao);
try {
inscricao2 = inscricao2.substring(0,3)+"."+inscricao2.substring(3);
} catch (Exception e) {
e.printStackTrace();
}
trasformacao=0;
return inscricao2;
}
Ja tentei usar a substring para tirar so a parte depois do ponto, mais ai acontece outro problema ele nao reconhe valor de 000 a esquerda no caso se eu tiver o valor 107.0000 e adicionar +1 a esse valor vou ter 107.1 e nao 107.0001 como eu desejo … alguem pode me ajudar a resolver o problema
Sem para pensar, vc poderia utilizar somente o valor depois do ponto como vc falou, e utilizar esse codigo
public String formatInt(long numero, int nrCasas) {
NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
if (nrCasas > 0) {
nf.setMinimumIntegerDigits(nrCasas);
nf.setMaximumIntegerDigits(nrCasas);
}
return nf.format(numero);
}
onde numero eh o valor ja incrementado e o nrCasas será o inscricao2.length.
entendeu??
Valew ai a ajuda galera … resolvi o problema adicionando um if dentro do codigo
ficou ± assim
public String trasformar (String inscricao){
inscricao = mask.Mask(inscricao);
long trasformacao;
String inscricao2 =null;
System.out.print("valor de teste "+inscricao.substring(3,4));
if(inscricao.substring(3,4).equals("9")){
trasformacao = Long.parseLong(inscricao.substring(3));
trasformacao = trasformacao+1;
inscricao2 = inscricao.substring(0,3)+"."+Long.toString(trasformacao);
}else{
trasformacao = Long.parseLong(inscricao);
trasformacao = trasformacao+1;
inscricao2 = Long.toString(trasformacao);
inscricao2 = inscricao2.substring(0,3)+"."+inscricao2.substring(3);
}
trasformacao=0;
return inscricao2;
}
desse jeito ai … ele nem esta colocando 107.1 no lugar de 107.0001
e quando ele chegar no 107.9999 mais +1 vai para 107.10000
flw ate mais …