Olá Gederson!
Testei o seu código aqui e apareceu apenas 1 ou 2 casas decimais, pois zeros à direita do separador decimal são desconsiderados, imprimiu assim para mim na tela:
/*
Executando projeto 10 - Calcula Poupança!
Após 1 mês você terá R$ 1003.6
Após 2 mês você terá R$ 1007.21
Após 3 mês você terá R$ 1010.84
Após 4 mês você terá R$ 1014.48
Após 5 mês você terá R$ 1018.13
Após 6 mês você terá R$ 1021.8
Após 7 mês você terá R$ 1025.47
Após 8 mês você terá R$ 1029.17
Após 9 mês você terá R$ 1032.87
Após 10 mês você terá R$ 1036.59
Após 11 mês você terá R$ 1040.32
Após 12 mês você terá R$ 1044.07
*/
Complementando a minha resposta, como você quer formatar a saída, o legal seria usar o string.Format
, essa função faz a formatação de números, datas e etc. para texto.
Vou refazer o seu código aqui para você apenas copiar e testar:
Console.WriteLine("Executando projeto 10 - Calcula Poupança!\n");
double vInvestido = 1000;
int contadorMes = 1;
while (contadorMes <= 12)
{
vInvestido = (vInvestido + vInvestido * 0.0036);
Console.WriteLine($"Após {contadorMes} mês você terá R$ {string.Format("{0:0.00}", Math.Round(vInvestido, 2))}");
//Também era possível fazer a exibição sem o Math.Round, dessa forma:
//string.Format("{0:0.00}", vInvestido)
//Ou ainda, passando o formato C ou c, de moeda, que já coloca o símbolo de moeda de acordo com a configuração do seu computador:
//string.Format("{0:c}", vInvestido)
//$1,003.60
//contadorMes = contadorMes + 1;
//contadorMes += 1;
contadorMes++;
}
Console.ReadLine();
Deixo aqui um link da Microsoft com mais informações sobres os tipos de formatação:
https://docs.microsoft.com/pt-br/dotnet/standard/base-types/formatting-types