Imprimir número formatado

6 respostas
Fanpix

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?

6 Respostas

E

System.out.printf

J

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

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
J

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

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.

Fanpix

Johnnny8:
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

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.

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

J

Fanpix:

É 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.

Criado 2 de maio de 2013
Ultima resposta 2 de mai. de 2013
Respostas 6
Participantes 3