次のコードを実行しようとすると
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 です。つまり、 5Math.pow
によって返される結果よりも大きくなります。それを引き起こす可能性のあるもののアイデアはありますか?