如果您尝试运行以下代码:
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。有什么想法是什么原因导致这种情况吗?
java.math.BigInteger
或commons-mathorg.apache.commons.math.util.MathUtils
。 - Christian Semrau