Oi pessoal … alguem sabe como posso formatar um valor double para “0,00” (a saida pode ser em formato String mesmo)
Se o valor for Double 60.28031970346346, gostaria de exibir 60,28
ou se for 60.0 gostaria de exibir 60,00
Obrigado!!
Rodrigo.
Oi pessoal … alguem sabe como posso formatar um valor double para “0,00” (a saida pode ser em formato String mesmo)
Se o valor for Double 60.28031970346346, gostaria de exibir 60,28
ou se for 60.0 gostaria de exibir 60,00
Obrigado!!
Rodrigo.
Voce deve usar DecimalFormat();
Exemplo:
DecimalFormat ad = new DecimalFormat(“0.00”);
vc deve importar java.awt.DecimalFormat;
Tenta ai. Se der certo da um toque…
Oi gollun… cara infelizmente eu não vi o seu post antes e acabei criando um metodo que faça essa formatação… mas de qualquer forma muito obrigado hein cara!!
Segue o metodo caso alguem precise e tal…
Abraço!!
[code] public String formataMoeda(String valor) { // entrada 20.5
String antes = valor.substring(0,valor.indexOf('.')); //recebe antes ponto "20"
String depois = valor.substring(valor.indexOf(".")+1); //recebe após ponto "5"
depois += "00"; // ("5"+"00") fica como 500
depois = depois.substring(0,2); //recupera dois primeiros carac de 500 -> 50
valor = antes+","+depois; // valor = "20" + "," + "50"
return valor; // 20,50
} [/code]
Nao reinvente a roda, amigo.
veja bem… não é questão de reinventar a roda… eu procurei desesperadamente por um metodo que me ajudasse… não encontrei nada…achei que não existisse… ai acabei fazendo eu mesmo…felizmente eu vi que vc postou e agora posso substitui-lo.
Mas pensando bem esse metodo que fiz foi realmente interessante pois com ele eu aprendo mais levando em conta que sou iniciante!!Esse metodo que fiz tambem pode ser reaproveitado para outras ocasiões
E depois se todos pensassem assim não existiriam frameworks no mercado como Struts por exemplo… pq ninguem quis reinventar a teoria de separar a logica de negocios da camada de apresentação…asei lá esse é meu modo de pensar… alias procurei um metodo que validasse moeda 0,00 e não encontrei nada!!
logo pode ser que eu tenha reinventado a roda mais uma vez!!
[code]
public boolean validaMoeda(String valor) { //valida até 999.999,99
boolean validar = true;
int len = valor.length(); // retorna qtde caracters
int ponto = valor.indexOf(’.’); // retorna 1 se existir ponto e -1 se não existir
if (ponto != -1){ //se existir ponto
System.out.println("não use . ");
validar = false; //termina o metodo
}
else{ // se não existir ponto verificaremos a virgula
int virgula = valor.indexOf(','); // retorna 1 se existir -1 se não existir
if (virgula != -1){ //se existir...
System.out.println("virgula digitada");
if (len>9){ //verificamos qtde de caracters digitados
System.out.println("valor invalido > 999999,99");
validar = false; // e se for maior q 9 (pq inclui a virula) termina o metodo
}
else{ //se não se qtde caracters for valida
try {
int posVirg = (len - 3); //retorna posição da virgula
char virg = valor.charAt(posVirg); // retorna o caracter posicionado na virgula
if (virg != ',') { // se esse caracter não for uma virgula
System.out.println("virgula não esta posicionada na casa decimal correta");
validar = false; //termina o metodo
}
else{ //senão se esse caracter for de fato uma virgula
String antes = valor.substring(0,valor.indexOf(',')); //recebe conteudo antes virgula
String depois = valor.substring(valor.indexOf(",")+1); //recebe conteudo após virgula
Integer.parseInt(antes); // valida pra ver se é um numero
Integer.parseInt(depois);
}
}
catch (Exception e) { //caso não for numerico, ocorrera um erro e esse catch trata o valor não numerico
validar = false;
}
finally{
return validar; // retornando o status false do boolean
}
}
}
else{ // sem virgulas
if (len>6){ // sem virgulas só é possivel uma entrada menor do valor
System.out.println("valor invalido > 999999");
validar = false;
}
else{
try {
Integer.parseInt(valor); //sem virgula basta uma conferencia pra ver se o valor é inteiro
}
catch (Exception e) { //caso não for numerico, ocorrera um erro e esse catch trata o valor não numerico
validar = false;
}
finally{
return validar; // retornando o status booleano
}
}
}
}
return validar; //se não entrou em nenhum catch temos que exibir a saída dos ifs true ou false
}[/code]