Imprimir número formatado

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?

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

[quote=Fanpix]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 [/quote]

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.

1 curtida

[quote=Johnnny8][quote=Fanpix]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 [/quote]

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.[/quote]

É isso mesmo que está acontecendo, então como eu faço para arredondar?

[quote=Fanpix]
É isso mesmo que está acontecendo, então como eu faço para arredondar?[/quote]

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.