Pessoal, tudo bem? Alguém poderia me ajudar? Alterei o código para retornar apenas duas casas após vírgula, porém preciso somar um texto no final:
Ex.
Teste
System.out.printf(“O percentual de idades de 0 a 17 anos é: = %.2f %n”, (percentual0a17));
Esperado (este preciso saber):
System.out.printf(“O percentual de idades de 0 a 17 anos é: = %.2f %n”, (percentual0a17+“%”));
Resultado esperado após execução:
Obrigado!
O caractere %
tem significado especial (serve para indicar o formato), então para imprimir ele próprio, precisa escrevê-lo como %%
. Ou seja:
System.out.printf("O percentual de idades de 0 a 17 anos é: = %.2f%% %n", percentual0a17);
^^
aqui
Se bem que no seu exemplo vc quer que o resultado seja 50.0%
(apenas uma casa decimal), então deveria ser:
System.out.printf("O percentual de idades de 0 a 17 anos é: = %.1f%% %n", percentual0a17);
Para saber mais sobre os formatos, consulte a documentação.
Outra alternativa é usar java.text.NumberFormat
:
double percentual0a17 = 50;
NumberFormat df = NumberFormat.getPercentInstance(Locale.US);
// sempre mostrar com 1 casa decimal
df.setMaximumFractionDigits(1);
df.setMinimumFractionDigits(1);
// a parte chata é que precisa dividir o valor por 100
System.out.printf("O percentual de idades de 0 a 17 anos é: = %s %n", df.format(percentual0a17 / 100.0));
O Locale.US
é para usar o ponto como separador decimal. Se quiser que seja a vírgula, troque por new Locale("pt", "BR")
.
1 curtida
Show de bola!! Já ajustei aqui e deu certo! Obrigado.