Q:

Redondear número a dos decimales

Estoy tratando de redondear a sólo 2 decimales el valor de la variable a y el valor de la variable calIntereses. Utilizando aredondeado=round(a,2); me devuelve error.
double a;
double calIntereses;    
System.out.println("Año " + y);
System.out.print("    C.Inicial: ");
a=capitalInicial+(aportacion*(y-1))+calIntereses;
System.out.println(a);
calIntereses =a*(tasa/100);
System.out.println("    Intereses: " + calIntereses);

A:

Te recomendaría que uses la clase BigDecimal para esto, incluso para tu valor de origen, ya que el tipo de dato double es problemático para fines de precisión.
Aquí se crea un BigDecimal a partir de tu valor a, luego se indica con setScale que quieres dos lugares decimales, y pasas un segundo parámetro RoundingMode que puede ser distinto según el tipo de redondeo que quieres (ver aquí para entender cada tipo de redondeo).
BigDecimal mValue = new BigDecimal(a);
BigDecimal roundValue = mValue.setScale(2, RoundingMode.HALF_UP);

Sobre el problema de los dobles y la necesidad de usar BigDecimal, puedes consultar el artículo The need for BigDecimal, publicado por John Zukowski en el blog de Oracle, así como esta pregunta de Stackoverflow en inglés How to resolve a Java Rounding Double issue, sus respuestas y la pregunta de la que es duplicada. Como verás, el tema ha sido discutido ampliamente en la comunidad anglófona y las conclusiones son contundentes.

