BigInteger和BigDecimal大数相加问题
package cn.hncu.big;
import java.math.BigDecimal;
public class BigDecimalDemo {
public static void main(String[] args) {
double s = 0.0;
for(int i=0;i<10;i++){
s = s+0.1;
}
System.out.println(s);
System.out.println("--------------");
BigDecimal ss = new BigDecimal(0);
for(int i=0;i<10;i++){
ss = ss.add( new BigDecimal(0.1) );
}
//23.34 ceiling=24 floor=23
//让ss除以1.0,保留2位有效数字,四舍五入
ss = ss.divide(new BigDecimal(1.0), 2, BigDecimal.ROUND_HALF_UP);
System.out.println( ss );
}
}
----------------------------------------------------
package cn.hncu.big;
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args) {
System.out.println( jc(700) );
BigInteger b1 = BigInteger.valueOf(12345567899L);
BigInteger b2 = jc(700);
BigInteger c = b1.add( b2 );
System.out.println(c);
}
public static BigInteger jc(int n){
BigInteger s =BigInteger.valueOf( 1 );
for(int i=1;i<=n;i++){
s = s.multiply( BigInteger.valueOf(i) );
}
return s;
}
public static int jc2( int n){
int s=1;
for(int i=1;i<=n;i++){
s = s*i;
}
return s;
}
public static int jc1( int n){
if(n==1){
return 1;
}
return n*jc1(n-1);
}
}