BigInteger(HDU1002)和BigDecimal处理
2016-03-23 00:25
274 查看
总的来说,大数不能直接赋值,只能通过new对象
或者valueof来实例化。BigInteger是不可变的任意精度的整数,以二进制补码形式表示。作用是用来放大数,进行操作。而BigDecimal是让小数算准,它是不可变的任意精度的有符号十进制数。它们做+、-、*、/是通过调用它们的方法来做到的。具体的其他操作可以看API。下面通过两个实例来理解:
1、BigInteger类(HDU 1002)已AC
2、BigDecimal类:
或者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); } }
相关文章推荐
- hdu 5171 fib矩阵快速幂
- Codeforces 300C Beautiful Numbers 【组合数学】
- Codeforces Round #345 (Div. 1) E - Clockwork Bomb
- 【c++】字符串循环左移
- android中很多情况下我们需要会使用多个fragment,我们这时就需要一个showFragment来实现fragment之间的切换
- LINUX
- 【c++】字符串循环左移
- slf4j + log4j 是如何初始化的
- 理解RESTful架构
- 微信Swift完整项目应用源码
- 南阳题目94-cigarettes
- 解读:nginx的一个神秘配置worker_cpu_affinity
- JAVA反射API以及常见用法
- C#中的Invoke
- css
- 读取程序字符,行数,单词的个人程序
- 随手记点-mapreduce5
- MySQL数据库的数据类型timestamp的自动更新
- 直接插入排序
- android 无线调试