Неверный результат Java Math.pow

Если вы попытаетесь запустить следующий код

public class Main {
   public static void main(String[] args) {
       long a = (long)Math.pow(13, 15);
       System.out.println(a + " " + a%13);
   }
}

Вы получите "51185893014090752 8"

Правильное значение13 ^ 15 является51185893014090757то есть больше, чем результат, возвращаемыйMath.pow по5, Есть идеи, что может вызвать это?