Tenho um inteiro, e desejo que ele seja exibido com no mínimo duas casas decimais (completando com 0’s a esquerda.
Por exemplo:
Para o inteiro 5, exibo 05
Em C posso fazer:
printf("%.2d",5);
em java, como ficaria?
valeu
Tenho um inteiro, e desejo que ele seja exibido com no mínimo duas casas decimais (completando com 0’s a esquerda.
Por exemplo:
Para o inteiro 5, exibo 05
Em C posso fazer:
printf("%.2d",5);
em java, como ficaria?
valeu
Use o método System.out.printf:
System.out.printf("%.2d",5);
[quote=gabriellm]Tenho um inteiro, e desejo que ele seja exibido com no mínimo duas casas decimais (completando com 0’s a esquerda.
Por exemplo:
Para o inteiro 5, exibo 05
Em C posso fazer:
printf("%.2d",5);
em java, como ficaria?
valeu[/quote]
Em C você não usa “%.2d” e sim “%02d” (note o algarismo zero).
Em Java é exatamente a mesma coisa - use “%02d”.
como não se trata de Java, pode dar diferente no windows… mas aqui no linux funciona das duas maneiras para numeros inteiros. Para numeros reais, dessa maneira eu estaria especificando o numero de casas decimais. Estou enganado?
@edit
me refiro a maneira que eu propus
De fato, de acordo com http://www.cplusplus.com/reference/clibrary/cstdio/printf/ , você está certo.
Entretanto, a maneira “padrão” (ou seja, que não vai fazer ninguém que está acostumado a trabalhar com C precisar procurar no Google se está certo ou não) de indicar que você vai completar um número com zeros à esquerda é com o modificador 0.
É que a precisão tem significados parecidos, mas diferentes para %d, %f e %s.
Pela lógica eu acharia que printf ("%.2d", 9) iria imprimir “9.00”, não “09”, embora saibamos que um inteiro não é promovido para nenhum tipo de ponto flutuante em um “varargs”, tal como o usado pelo printf.
[code]public class CasaAEsquerda {
public static void main(String[] args) {
Integer num = new Integer (10);
String strnum = "";
System.out.println("O numero inteiro digitado =>" + num);
strnum = "00" + num.toString();
System.out.println("A string do numero com zeros a esquerda é =>" + strnum);
}
}[/code]
[quote=xande.boy][code]public class CasaAEsquerda {
public static void main(String[] args) {
Integer num = new Integer (10);
String strnum = "";
System.out.println("O numero inteiro digitado =>" + num);
strnum = "00" + num.toString();
System.out.println("A string do numero com zeros a esquerda é =>" + strnum);
}
}[/code][/quote]
faz sentido para um numero pequeno de 0’s
@edit
aliás, se eu entendi bem, esse código vai adicionar dois 0 a todos os numeros não?
Paz para todos. Muito interessante a questão levantada neste topico, pois esta semana me deparei com a necessidade de resolver um problema semelhante. Num sistema de cadastro, no formulario , mas especificamente um JTextField onde é mostrado o ID , o cliente me pediu para mostrar o numero do registro com um 0 a esqueda, e ainda estava pensando em como poderia fazer isso. Sera que algum amigo do forum poderia esplanar um pouco mais , para eu ter uma ideia do que fazer?
Use o String.format
int numero = 1;
String msg = String.format("%02d", numero);
System.out.println(msg);
//Retorna 01
numero = 10;
msg = String.format("%02d", numero);
System.out.println(msg);
//Retorna 10
Estou mostrando o numero usando:
int codigo = c.buscarCodigoUltimoAtendimento() +1;
String msg = String.format("%02d", codigo);
pront.setText(msg);
mas não funcionou, não da erro, mas não mostra o numero com zero a esquerda.
qual o valor do codigo que esta vindo?
pq esse 02 vai pegar sempre com 2 casas, se tiver 28, nao vai vir 028, e sim somente 28
Seia um numero com 8 digitos…
Então eu deveria usar “%08d”?
A ficha caiu, :lol: , funcionou, vlw pela paciência.