前言:

BigInteger用于处理大数据的计算,它继承自java.math.BigInteger。用法相对来说比较简单,掌握几个基本运算即可。

  • 初始化: BigInteger sum=new BigInteger("0");
  • 加法:sum=sum.add(n1);   //这里sum和n都为BigInteger类型
  • 减法:sum=sum.subtract(n1);
  • 乘法:sum=sum.multiply(n1);
  • 除法:sum=sum.divide(n1);
  • 幂运算:sum=sum.pow(10);
  • 取相反数:sum=sum.negate();

同理,BigDecimal是处理浮点数的大数据运算,继承自java.math.BigDecimal。

  • 初始化: BigDecimal num1=new BigDecimal("1234.56453324");
  • 加法:sum=sum.add(n1);   //这里sum和n都为BigDecimal类型
  • 减法:sum=sum.subtract(n1);
  • 乘法:sum=sum.multiply(n1);
  • 除法:sum=sum.divide(n1);
  • 将BigDecimal类型转换为double类型:num1.doubleValue();
  • 比较大小:num1.compareTo(num2);  //小于 时,返回 -1  ;  等于 时,返回 0  ; 大于 时,返回 1  。
  • 四舍五入处理:  num1.divide(num2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();  //scale表示保留几位小数

练习1:

BigInteger的加法运算:输入以0结尾

输入例子:
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
输出例子:
370370367037037036703703703670

代码如下:
import java.math.BigInteger;
import java.util.Scanner; public class Integer_Inquiry { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger sum=new BigInteger("0");
while(in.hasNext()){
String str=in.next();
if(str.equals("0")){
System.out.println(sum);
sum=new BigInteger("0");
}
BigInteger n=new BigInteger(str);
sum=sum.add(n);
}
in.close(); } }
 练习2:BigDecimal加法练习:
输入描述:

对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符

输出描述:

每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数
 
输入例子:

2
0.111111111111111111111111111111
0.111111111111111111111111111111 10000000.655555555555555555555555555555
1.444444444444444444444444444445
 
输出例子:

0.222222222222222222222222222222
10000002.1
import java.math.BigDecimal;
import java.util.Scanner; public class 浮点数加法 { public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n = in.nextInt(); while(n>0){
BigDecimal num1=new BigDecimal(in.next());
BigDecimal num2=new BigDecimal(in.next());
System.out.println(num1.add(num2).doubleValue());
n--;
// if(n>0){
// if(!in.next().equals("")){
// System.out.println("输入格式错误");
// break;
// }
// }
}
in.close(); } }
 

最新文章

  1. 抽象工厂模式(Abstract Factory Pattern)
  2. Delphi日期函数、日期加减
  3. Oracle数据库,模糊查询、去重查询
  4. Unitils集成DBUnit的问题-解决方案
  5. table相关的API
  6. Aix_bugzilla
  7. HDU 1134 卡特兰数 大数乘法除法
  8. checkbox 选择功能和反选
  9. Vue 自定义图片懒加载指令v-lazyload
  10. Python爬虫初学(二)—— 爬百度贴吧
  11. JQ判断浏览器以及版本
  12. 火狐浏览器打开html文件,中文乱码
  13. 用MVC导入导出
  14. linux服务器 jboss-7安装
  15. Request method 'POST' not supported解决办法
  16. Netty 5 io.netty.util.IllegalReferenceCountException 异常
  17. SSIS Hekaton In-Memory OLTP 【翻译一篇外国文章】
  18. java-多线程(上)
  19. golang打造基于mail的提醒服务
  20. Pulsar-Producer实现简介

热门文章

  1. 【angularjs】【学习心得】路由继续研究篇
  2. Java 八大类型、String和 StringBuffer
  3. 部署Replica Sets及查看相关配置
  4. 以脚本方式直接执行修改密码的passwd命令
  5. android 快捷技巧
  6. Sublime Text3 高亮显示Jade语法 (Windows 环境)
  7. LoadRunner
  8. linux下的Source命令的基本功能
  9. JS与浏览器的几个兼容性问题
  10. 如何让微信小程序快速接入七牛云