Olá,
estou com o seguinte problema, quero fazer uma limitação de valores em uma variavel, quero que ele somente mostre os dois valores depois do ponto, por exemplo: 000.00
Estou tentando fazer o mesmo com Substring, porem não estou achando a lógica certa p/ verificar se tem realmente os 2 valores depois do ponto, ou se tem o ponto.
Da maneira que esta meu código ele da o seguinte erro:
Exception in thread “AWT-EventQueue-0” java.lang.StringIndexOutOfBoundsException: String index out of range: 9
Na linha de código abaixo:
valordaVenda = valordaVenda.substring(0, X + 3);
Provavelmente o erro ocorre pq não deve ter 2 valores depois do ponto.
Estou fazendo da seguitne maneira abaixo:
//valorVenda é um bigdecimal que contem um valor, como por exemplo "100.10 ou 10 ou 100.1"
valordaVenda = valorVenda.toString();
//aqui setamos o contador com o tamanho da string
int cont = valordaVenda.length();
//percorremos a string
for(int X = 0; X<cont; X++){
//verificamos onde esta o . dentro da string
if(valordaVenda.charAt(X) == '.'){
//valordaVenda = valordaVenda.substring(0, X+3);
//substring(X, X+1).equals(".")){
//substring é o resultado de um pedaço da sua string original
if (valordaVenda.substring(X+1, valordaVenda.length()).length() == 0){
valordaVenda.concat("000");
} else if (valordaVenda.substring(X+1, valordaVenda.length()).length() == 1){
valordaVenda.concat("00");
} else if (valordaVenda.substring(X+1, valordaVenda.length()).length() == 2){
valordaVenda.concat("0");
}
//aqui pedimos para ele pegar o pedaço da strig que começa no 0
//e termina 3 casas a partir do . que ele achou
valordaVenda = valordaVenda.substring(0, X + 3);
break;
//tentei fazer da seguinte maneira abaixo mais não tive sucesso
// if (valordaVenda.substring(X, X + 2).equals("")) {
// Utils.msg("x+1:" + valordaVenda.substring(0, X + 1));
// valordaVenda = valordaVenda.substring(0, X + 1);
// break;
// } else if (valordaVenda.substring(X, X + 3).equals("")) {
//
// Utils.msg("x+2:" + valordaVenda.substring(0, X + 2));
// valordaVenda = valordaVenda.substring(0, X + 2);
// break;
// }else{
// Utils.msg("x+3:" + valordaVenda.substring(0, X + 3));
// valordaVenda = valordaVenda.substring(0, X + 3);
// break;
// }
}
}