em java tem como mudar a virgula em uma saida de dados ex: 0,00162 para 0001,62 ou deixando somente 1,62 ?
Mas isso não afetaria os resultados? Porquê há uma diferença entre 1,00 e 0,01
Mostre o que você fez e resultado disso, por favor.
Sou novo em java, estou tentando fazer um algoritmo que calculasse a conversão de aviario
no caso seria ração consumida dividida por ( peso medio * numero de aves alojado) nas minhas contas o resultado deu coreto 0,00156 mas oque eu quero mesmo é mostrar na tela so 1,56 os 0,00 nao importaria e nao iria interferir no resultado tem como fazer isso?
Claro que tem. Há diversas formas de se fazer isso. Eu vou te passar um código e depois você tenta adaptar aos seus cálculos.
Vou explicar linha por linha.
String a = "0,001620".replaceFirst("^0+(?!$)", "").replace(",", "");
//Tenho uma String que recebe o valor que você me passou: 0,001620.
//Usei o ReplaceFirst (com um regex dentro) para tirar todos os ZEROS que vem à esquerda
//Ou seja, se você tem 0500 ou 0050, ele vai imprimir: 500 e 50
//O "Replace" serve pra você retirar alguma coisa e substituir por outra
//nesse replace, eu tirei a vírgula e substituí por "nada"
//PORQUÊ NÃO USEI O REPLACE PRA TUDO ENTÃO???? Simples, porquê se
//eu usasse apenas o replace, ele tiraria TODOS os zeros, á esquerda e à direita.
System.out.println(a);
//Imprimo o resultado da minha String: a
double b = Double.parseDouble(a);
//Converti a minha String pra double (geralmente usamos double para valores)
//Uma String é um texto, então se você tentar somar duas Strings "puras"
//não vai funcionar, apenas concatenaria. Pra somar ou fazer qualquer outra operação
//vc precisa fazer a conversão.
System.out.println(b);
//Imprimo o resultado da minha DOUBLE: b
DecimalFormat df = new DecimalFormat("#,###.00");
//Aqui fica interessante, eu passo um valor pra o meu DecimalFormat
//isso pode variar, como vamos ver aqui nesse exemplo.
//Veja, eu passei um valor que seria R$1,000.00
System.out.println(df.format(b));
//Aqui eu converto a minha double (b) pra o Decimal Format, pra ele ficar no meu padrão.
//e imprimo o valor da mesma.
DecimalFormat df2 = new DecimalFormat("#,##");
//Aqui eu passei o valor que seria R$1,00
System.out.println(df2.format(b));
//Aqui eu converto a minha double (b) pra o Decimal Format 2, pra ele ficar no meu padrão.
//e imprimo o valor da mesma.
Óbvio que você não vai usar tudo isso, ao todo (neste exemplo), vc terá umas 4 linhas
String a = "0,001620".replaceFirst("^0+(?!$)", "").replace(",", "");
double b = Double.parseDouble(a);
DecimalFormat df2 = new DecimalFormat("#,##");
System.out.println(df2.format(b));
Por fim, a saída de cada um:
String "pura": 001620
Double (Resultado da String convertida): 1620.0
Primeira conversão com o Decimal Format (df): 1,620.00
Segunda conversão com o Decimal Format (df2): 16,20
É só multiplicar por 1000.
Caramba, e eu dei um puta rolê pra isso. Boa!!
Esse link pode te ajudar bastante;