I program in Java because it is cross-platform (for example, use Processing) and it does not have much compilation problems (in C++, you need to take care of order when including headers).
Some libraries I use:
Example of using ApFloat (put jar in directory 'code'):
import org.apfloat.Apfloat;
import org.apfloat.ApfloatMath;

void init()
{
  Apfloat x = new Apfloat(2, 1000);
  System.out.println(ApfloatMath.sqrt(x));
}


void setup()
{
  init();
}