Pessoal boa tarde to com uma simples dúvida, tenho uma String que retorna um valor, porem ele ta retornando o valor com 2 digitos a mais no caso dois 0, exemplo: 15,0000, como eu tiro esses 2 zeros finais via codigo java?
vlw pela atenção.
vê se ese site te ajuda
http://www.devmedia.com.br/post-7369-Formatando-numeros-com-Numberformat.html
abrxx
http://jtra.cz/stuff/lisp/sclr/rplaca.html
Sério - use os métodos substring() e length().
Digamos que você tenha uma string assim:
String s = "abacaxi";
e você quer tirar os 2 últimos caracteres. Você faria algo como:
if (s.length() >= 2) {
s = s.substring (s.length() - 2);
}
entanglement meu caro seu metodo n vai dar certo pq e se o valor que vier for 10.000 (dez mil reais) ele vai vim assim 10.00000 n vai adiantar faze o q vc disse ja tinha pensado nisso !
com seu metodo veja o q retorna no print linha
valor o =12.0000
valor m=00
valor o = valor original
valor m = valor modificado
vc não pode usar JFormattedTextField
JFormattedTextField campo_Preco = new JFormattedTextField(new DecimalFormat("#,###,##0.00"));
String.format("%.2f",valor)
estou programando web n tem formattedtextfield em web!
Repito a minha dica
igor vlw pela sua atencao amigao porem como disse tenho uma string com o valor veja o que aconteceu
java.util.IllegalFormatConversionException: f != java.lang.String
atha pois vc não se especificou qual era!
se era desktop ou web…
mas blz!!!
abrxx e boa sorte!
usei isso:
String.format("%.2f",valor);
System.out.print("valor = "+String.format("%.2f",valor));
Pois é, como eu te disse.
O método format da classe String é bem poderoso, da pra fazer bastante coisa, vale a pena estudar
java.util.IllegalFormatConversionException: f != java.lang.String
o seu atributo “valor” está vindo como Double? Float? String?
esse ta me parecendo pq está vindo para o método como String ou um tipo que não da pra converter, vc não tem como recuperar o Double desse valor? Pq ele te traz uma String?
Sim é uma String, tem como converter uma string para double e fazer este processo ?
tem sim, vc pode usar Double valor = Double.parseDouble(valorEmString)
System.out.printl(String.format("%.2f",valor))
ok mas ele removeu um caracter a mais agora
tava retornando isso quando estava errado 9.9000 e no caso teria que retornar 9.90 e com esste codigo esta retornando 9.9, conclusao ele tirou três 0 e devia retirar apenas 2
Bom, não devia, pq o formato %.2f indica para colocar duas casas decimais após o ponto
Talvez o problema foi no parse, tenta ao invés de Double.parse(string)
fazer Double.valueOf(string)