Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Arredondamento.

ececutndo exemplo :

   String nome = "Maria";
    int idade = 30;
    double valor = 55.9999;
    System.out.println(String.format("Meu nome é %s, eu tenho %d anos e hoje gastei %.2f reais", nome2, idade, valor));
    
    eu tive como resultado : Meu nome é Maria, eu tenho 30 anos e hoje gastei 56,00 reais
    
    em vez de: 
    
    "Meu nome é Maria, eu tenho 30 anos e hoje gastei 55,99 reais".
    
    Porque?
    
    
    
    
    
1 resposta
solução!

Olá Denise, tudo bem?

O arredondamento do valor ocorreu devido ao uso do método String.format com o especificador de formato "%.2f", que indica que o valor deve ser formatado com duas casas decimais. Quando o valor é 55.9999, o arredondamento para duas casas decimais resulta em 56.00. Esse é o comportamento padrão do double no java.

Para exibir o valor sem arredondamento, você pode alterar o especificador de formato para "%.4f", que exibirá o valor com quatro casas decimais. Ou, se preferir, você pode utilizar o método DecimalFormat para formatar o valor de acordo com suas preferências.

Veja um exemplo utilizando o método DecimalFormat:

String nome = "Maria";
int idade = 30;
double valor = 55.9999;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(String.format("Meu nome é %s, eu tenho %d anos e hoje gastei %s reais", nome, idade, df.format(valor)));

Espero ter ajudado e bons estudos!