Com a função System.out.format eu formato um valor para quantos elementos eu quiser, mas como eu faço para imprimir esse valor formatado?
Imprimir número formatado
6 Respostas
System.out.printf
Para se usar System.out.printf voce deve primeiro saber sobre especificadores de formato.
Por exemplo:
String a = "Hello";
String b = "World";
System.out.printf("%s %s", a, b);
int a = 2;
int b = 3;
int soma = a+b;
System.printf("%d + %d = %d", a, b, soma);
Os especificadores de formato podem ser identificados pelo %alguma coisa.
Algunas especificadores sao:
%s = String
%c = char
%o = numero inteiro em notacao octal
%d = numero inteiro em decimal
%b = boolean
%x ou %X = numero inteiro na notacao hexadeciaml
Existem varios deles… De uma estudada sobre eles que voce entendera perfeitamente o printf
Quando coloco essas mensagens, aparece o seguinte:
double teste = 300.2541; // número para teste
System.out.printf("Tempo de processamento: %.2f", teste); // Ok, funciona
System.out.printf("Tempo de processamento: %.2f", contador.tFinal); // Não funciona, mostra somente o tempo em milisegundos
Quando coloco essas mensagens, aparece o seguinte:
double teste = 300.2541; // número para teste System.out.printf("Tempo de processamento: %.2f", teste); // Ok, funciona System.out.printf("Tempo de processamento: %.2f", contador.tFinal); // Não funciona, mostra somente o tempo em milisegundos
Voce esta usando System.currentTimeMillis()?
Se for… Este metodo ira te retornar um long e um long nao tem pontos flutuantes.
Se nao for…coloque o resto do seu codigo.
Quando coloco essas mensagens, aparece o seguinte:
double teste = 300.2541; // número para teste System.out.printf("Tempo de processamento: %.2f", teste); // Ok, funciona System.out.printf("Tempo de processamento: %.2f", contador.tFinal); // Não funciona, mostra somente o tempo em milisegundosVoce esta usando
System.currentTimeMillis()?
Se for… Este metodo ira te retornar um long e um long nao tem pontos flutuantes.Se nao for…coloque o resto do seu codigo.
É isso mesmo que está acontecendo, então como eu faço para arredondar?
É isso mesmo que está acontecendo, então como eu faço para arredondar?
Arredondar?!..Seria passar de milisegundos para segundos?
Se for basta dividir o long de System.currentTimeMillis() por 1000 e atribui-lo a uma variavel que aceite ponto flutuante.
Dica: Como os computadores de hoje tem uma velocidade de processamente enorme, use o metodo nanoTime() da classe System para se ter um valor mais preciso.