在网上查了很久,BigDecimal到底怎么用还是不知道
例如下面的double怎样用BigDecimal写
double A1 (double x1) {
return 1-Math.pow((1-p),x1);
}
例如下面的double怎样用BigDecimal写
double A1 (double x1) {
return 1-Math.pow((1-p),x1);
}
BigDecimal bd2 = bd.pow(12);123456789789789的12次方
BigDecimal bd1 = bd.pow(12);
System.out.println(bd1.doubleValue());结果:1.2536599971447652E-143
class Keisan {
public static Keisan f = new Keisan();
public static void main (String[] args){ double x1; f.setM(200);
f.setP(0.3);
x1=13.123456;
f.fx(x1);
System.out.println( f.fx(x1) );
}
private double p; private int m;double fx(double x1) {
return A1(x1)*A2(x1)+A1(x1)*A1(x1)*(x1+1)/(3*m)
+A2(x1)*A2(x1)*(m-x1+1)/(3*m)
+A1(x1)*(x1+1)/m
+A2(x1)*(x1+m+1)/(2*m)
+A2(x1)*(x1+1)/(2*m)
+A2(x1)/2+A2(x1)*(x1+1)/(3*m);
}
double A1 (double x1) {
return 1-Math.pow((1-p),x1);
}
double A2(double x1) {
return -Math.pow((1-p),m)+Math.pow((1-p),x1);
}
public int getM() {
return m;
} public void setM(int m) {
this.m = m;
} public double getP() {
return p;
} public void setP(double p) {
this.p = p;
}
}