您的位置:首页 > 其它

BigInteger(HDU1002)和BigDecimal处理

2016-03-23 00:25 274 查看
总的来说,大数不能直接赋值,只能通过new对象
或者valueof来实例化。BigInteger是不可变的任意精度的整数,以二进制补码形式表示。作用是用来放大数,进行操作。而BigDecimal是让小数算准,它是不可变的任意精度的有符号十进制数。它们做+、-、*、/是通过调用它们的方法来做到的。具体的其他操作可以看API。下面通过两个实例来理解:

1、BigInteger类(HDU 1002)已AC

package cn.hncu.big;

import java.math.BigInteger;
import java.util.Scanner;

public class BigIntegerDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
sc.nextLine();
int count=0;
boolean isFirst=true;
while(t-->0){
count++;
BigInteger a=new BigInteger(sc.next());
BigInteger b=new BigInteger(sc.next());
BigInteger sum=a.add(b);
if (isFirst==false) {
System.out.println();
}
System.out.println("Case "+count+":");
System.out.println(a+" + "+b+" = "+sum);
isFirst=false;
}

}

}


2、BigDecimal类:

package cn.hncu.big;

import java.math.BigDecimal;

public class BigDecimalDemo {

public static void main(String[] args) {
double d=0;
BigDecimal bigD=new BigDecimal(d);
for(int i=0;i<10;i++){
bigD=bigD.add(new BigDecimal(0.1));
}
System.out.println(bigD.toString());
System.out.println("******************");
//保留5位小数
double x=1.7878755;
BigDecimal d2=new BigDecimal(x);
d2=d2.divide(new BigDecimal(1.0), 5, BigDecimal.ROUND_HALF_UP);
System.out.println(d2);
x=d2.doubleValue();
System.out.println(x);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: