Estou armazenando valores do tipo float em uma variável, só que ao exibir na tela eu gostaria de que exibisse todo o valor até o último caracter sem ser 0.
Exemplo Entrada:
53.4870
.5400
48.0
Saída desejada:
53.487
0.54
48
No meu caso eu tento converter pra double, mas no 48 ele sempre continua exibindo 48.0?
Meu arquivo realiza a leitura de uma certa quantidade de valores e armazena em um arquivo, após isso ele lê o arquivo e armazena em um vetor para depois exibir em ordem invertida.
Estou utilizando a biblioteca MyIO apenas para substituir o scanner.
import java.io.*;
public class EstudoJava {
public static void main(String[] args) {
float valores;
int quantidade = MyIO.readInt("");
// Escrita
try {
FileOutputStream arquivo = new FileOutputStream("arquivo.txt");
PrintWriter pr = new PrintWriter(arquivo);
for (int i = 0; i < quantidade; i++) {
valores = MyIO.readFloat("");
pr.println(valores);
}
pr.close();
arquivo.close();
} catch (Exception e) {
MyIO.println("Erro ao escrever o arquivo");
}
// Variaveis utilizadas fora do try
double inverso[] = new double[quantidade];
// Leitura
try {
FileInputStream arquivo = new FileInputStream("arquivo.txt");
InputStreamReader input = new InputStreamReader(arquivo);
BufferedReader br = new BufferedReader(input);
String linha;
int i = 0;
do {
linha = br.readLine();
if (linha != null) {
inverso[i] = Double.parseDouble(linha);
i++;
}
} while (linha != null);
} catch (Exception e) {
MyIO.println("Erro ao ler o arquivo");
}
for (int i = quantidade - 1; i >= 0; i--) {
MyIO.println(inverso[i]);
}
}
}