Это не проблема точности.Метод Math.pow выполняет аппроксимацию результата.Для получения правильного результата используйте следующий код.
long b = 13;
for(int i = 0; i != 14; i ++) {
b = b * 13;
}
System.out.println(b);
Вывод - ожидаемый результат 51185893014090757L.
В более общем случае следует избегать использования метода Math.pow, если показатель степени равенцелое число.Во-первых, результат является приблизительным, а во-вторых, его вычисление обходится дороже.
Реализация Math.pow (и большинства других методов в классе Math) основана на сетевой библиотеке netlib в качестве пакета "Свободно распространяемая математическая библиотека »(см. StrictMath javadoc ).Реализация на C доступна по адресу e_pow.c .