BigInteger和BigDecimal大数相加问题

时间:2023-02-11 11:02:38

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);
}



}