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!