62,614
社区成员
发帖
与我相关
我的任务
分享
double a = 1.2;
double b = 10000;
import java.math.BigDecimal;
import java.math.MathContext;
public class VeryBigDecimal {
public static void main(String[] args) {
BigDecimal bd = pow(1.2, 1000);
System.out.println(bd);
BigDecimal pp = new BigDecimal("1.2").pow(1000, MathContext.DECIMAL128);
System.out.println(pp.toEngineeringString());
}
// 这样只能粗略的计算一下,仅能保证 12 位的精度,但是计算速度是很快很快的,
public static BigDecimal pow(double base, int exponent) {
double p = Math.log10(base) * exponent;
double b = Math.pow(10, p % 1);
return new BigDecimal(b + "E" + (int)p);
}
}
double a = 1.2;
double b = 10000;
BigDecimal bd = new BigDecimal(String.valueOf(a));
BigDecimal result = bd.pow((int)b);
System.out.println(result.toString());