前言:

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

BigInteger和BigDecimal的练习的更多相关文章

  1. Java的大数操作分为BigInteger和BigDecimal

    Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...

  2. Java 大数类BigInteger和BigDecimal的基本函数

    在Java中有两个类BigInteger和BigDecimal分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数).主要用于高精度计算中.这两个类使得java中的大数,高精度运 ...

  3. BigInteger与BigDecimal

    BigInteger与BigDecimal Java大数字运算(BigInteger类和BigDecimal类) 在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger ...

  4. 【转】BigInteger、BigDecimal详解

    参考 http://lavasoft.blog.51cto.com/62575/228705/ 从Java4到Java5,Java对BigInteger.BigDecimal两个类功能一直再做扩展与改 ...

  5. Java 之 数学相关类 Math、BigInteger、BigDecimal

    一.java.lang.Math 类 一.Math 类概述 java.lang.Math 类包含用于执行基本数学运算的方法,如指数.对数.平方根和三角函数.类似于这样的类,其所有方法均为静态方法,并且 ...

  6. 拯救你丢失的精度——BigInteger和BigDecimal类(入门)

    第三阶段 JAVA常见对象的学习 BigInteger和BigDecimal类 BigInteger类 (一) 构造方法: //针对超过整数范围的运算(整数最大值:2147483647) BigInt ...

  7. java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal

    一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...

  8. BigInteger和BigDecimal

    BigInteger BigInteger的作用是对整数做计算,一般的使用String类型初始化BigInteger,它除了封装了基本的加减乘除运算外还提供了signum(),abs()等函数,使用方 ...

  9. Day30 BigInteger和BigDecimal

    BigInteger与BigDecimal BigInteger类 Integer类作为int的包装类,能存储的最大整型值为2 31-1,Long类也是有限的, 最大为2 63-1.如果要表示再大的整 ...

  10. 经常使用的系统类Math、Arrays、System、BigInteger和BigDecimal以及日期类,时间戳

    一.Math 常用类: //看看Math常用的方法(静态方法)//1.abs绝对值int abs = Math . abs(-9);System. out . printLn(abs);//9//2. ...

随机推荐

  1. Delphi中上指定进程(进程名)

    procedure KillProcess(ExeName: string); const PROCESS_TERMINATE = $0001; //进程的PROCESS_TERMINATE访问权限 ...

  2. GCD教程(二):多核心的性能

    接上一篇,原帖地址:http://www.dreamingwish.com/dream-2012/of-of-of-performance-of-of-of-of-of-of-of-gcd-intro ...

  3. onfocus在火狐、ie10浏览器失效解决方法方法

    <script>      function setit(){      if(document.all){      document.getElementById("myfr ...

  4. jQuery的each函数

    http://www.cnblogs.com/xiaojinhe2/archive/2011/10/12/2208740.html http://www.cnblogs.com/mabelstyle/ ...

  5. 基于ASIO的协程库orchid简介

    什么是orchid? orchid是一个构建于boost库基础上的C++库,类似于python下的gevent/eventlet,为用户提供基于协程的并发模型. 什么是协程: 协程,即协作式程序,其思 ...

  6. Spring aop:decare-parent 为类增加新的方法

    Spring aop:decare-parent 为类增加新的方法: 使用XML配置的方式: XML: <?xml version="1.0" encoding=" ...

  7. Nancy简单实战之NancyMusicStore(五):部署上线

    前言 经过本系列前面四篇文章,NancyMusicStore已经开发完成了,下面就差部署上线了,我们会在两个不同的环境部署.其实之前的文章也有讲解在 Linux下部署的相关事宜.下面开始本文的内容. ...

  8. paramiko库安装

    python的paramiko库用于执行ssh2连接(client和server).安装方式如下: 硬件环境:Raspberry 2B,arm,1GB RAM,16GB TF卡; 系统环境:Linux ...

  9. MEAN教程2-Nodejs安装

    安装Node.js稳定版本最简单的办法也是使用二进制文件,Node.js官方网站上提供了下载地址,可用于Linux.Mac OS X和Windows系统.同样要注意下载与目标操作系统架构一致的文件. ...

  10. linux - tar命令简单使用

    tar 新建一个tar文档 touch file1 touch file2 mkdir dir1 touch dir1/file3 # 普通tar文档 tar -cf tar-file.tar fil ...