Java大数
1、java.math.BigInteger类
不可变的任意精度的整数。所有操作中,都以二进制补码形式表示。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。
另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
BigInteger中要申明一个整数需要用类似申明一个对象的方法,比方说整数1,就要这样子:BigInteger
x =new BigInteger(""+1);或者BigInteger x = BigInteger.valueOf(1L);
下面用代码来说话吧:
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args) {
//这种方式是错的:BigInteger x = 1;
//大数中的1---法1:
BigInteger x = new BigInteger(""+1);
System.out.println(x.intValue());
// 100!
BigInteger a = jc(100);
System.out.println(a.toString());
System.out.println(a.toString(16));//以指定进制的方式输出
}
public static BigInteger jc( int n){
/*求n的阶乘---基本数据类型的写法
int s=1;
for(int i=1;i<=n;i++){
s = s*i;
}
return s;
*/
//求n的阶乘---大数类型的写法
//大数中的1---法2:
BigInteger s = BigInteger.valueOf(1L);
for(int i=1;i<=n;i++){
s = s.multiply( BigInteger.valueOf(i) );
}
return s;
}
}
2、java.math.BigDecimal类
不可变的、任意精度的有符号十进制数。 BigDecimal由任意精度的整数非标度值和32位的整数标度(scale: 以10为底的指数)。
BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。toString( )方法提供 BigDecimal 的规范表示形式。
BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。toString( )方法提供 BigDecimal 的规范表示形式。
申明一个数的方法与BigInteger类似
下面还是在代码里面具体地说吧:
import java.math.BigDecimal;
public class BigDecimalDemo {
public static void main(String[] args) {
double s = 0;
for(int i=0;i<10;i++){
s = s+0.1;
}
System.out.println("s="+s);
BigDecimal d = new BigDecimal(0D);
for(int i=0;i<10;i++){
d = d.add( new BigDecimal(0.1D));
//BigDecimal加法的表示方式
}
System.out.println("d="+d);
System.out.println(d.doubleValue());
//doubleValue()方法将此 BigDecimal 转换为 double。默认保留一位小数
double dd = 12.12345667774332D;
BigDecimal bd = new BigDecimal(dd);
//保留7位小数且四舍五入
//下面的ROUD_UP舍入远离零的舍入模式。在丢弃非零部分之前始终增加数字。注意,此舍入模式始终不会减少计算值的大小。
bd = bd.divide(new BigDecimal(1.0), 7, BigDecimal.ROUND_UP);
System.out.println(bd.doubleValue());
}
}
2、java.math.BigDecimal类
不可变的、任意精度的有符号十进制数。 BigDecimal由任意精度的整数非标度值和32位的整数标度(scale: 以10为底的指数)。
BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。toString( )方法提供 BigDecimal 的规范表示形式。
BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。toString( )方法提供 BigDecimal 的规范表示形式。
申明一个数的方法与BigInteger类似
下面还是在代码里面具体地说吧: