Problema ao incrementar um valor

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

Você quer imprimir um número com zeros à esquerda? É muito fácil, na verdade - use String.format.

long n = 1;
String s = String.format ("%04d", n); // deve obter "0001"

Seria bom você fazer uma classe só para lidar com esse tipo de estrutura de dado.

Algo que mantivesse os dois numeros separadamente, somasse os valores deles em cada caso específico, mais um toString para imprimir essa estrutura como você quiser.

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 …

rodrigo_meira

tem um código um pouco mais curto mas não sei se resolve 100% seu problema.
de qualquer forma fica o código

public static void main(String[] args) {
    String valor = "107.9999";
    String teste = valor.replace('.', ';');
    String[] dados = teste.split(";");
    long incremento = Long.parseLong(dados[1]) + 1;
    String valorfinal = dados[0].concat(".").concat(String.valueOf(incremento));
    System.out.println(valorfinal);
}

Espero que ajude
Abraço