一、BigInteger

如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。
不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
No.
方法
类型
描述
1
public BigInteger(String val)
构造
将一个字符串变为BigInteger类型的数据
2
public BigInteger add(BigInteger val)
普通
加法
3
public BigInteger subtract(BigInteger val)
普通
减法
4
public BigInteger multiply(BigInteger val)
普通
乘法
5
public BigInteger divide(BigInteger val)
普通
除法
6
public BigInteger max(BigInteger val)
普通
返回两个大数字中的最大值
7
public BigInteger min(BigInteger val)
普通
返回两个大数字中的最小值
8
public BigInteger[] divideAndRemainder(BigInteger val)
普通
除法操作,数组的第一个元素为除法的商,第二个元素为除法的余数

二、使用BigInteger操作大整数

package com.pb.demo1;

import java.math.BigInteger;

public class BigIntegerDemo {

    public static void main(String[] args) {
BigInteger bi1=new BigInteger("123456789");
BigInteger bi2=new BigInteger("987654321");
System.out.println("加法操作:" + bi2.add(bi1)); // 加法操作
System.out.println("减法操作:" + bi2.subtract(bi1)); // 减法操作
System.out.println("乘法操作:" + bi2.multiply(bi1)); // 乘法操作
System.out.println("除法操作:" + bi2.divide(bi1)); // 除法操作
System.out.println("最大数:" + bi2.max(bi1)); // 求出最大数
System.out.println("最小数:" + bi2.min(bi1)); // 求出最小数
BigInteger result[] = bi2.divideAndRemainder(bi1) ; // 除法操作
System.out.println("商是:" + result[0] +
";余数是:" + result[1]); } }

结果:

加法操作:1111111110
减法操作:864197532
乘法操作:121932631112635269
除法操作:8
最大数:987654321
最小数:123456789
商是:8;余数是:9

三、使用BigDecimal指定小数的保留位数

对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算的结果,则必须使用BigDecimal类。
No.
方法
类型
描述
1
public BigDecimal(double val)
构造
将double表示形式转换为BigDecimal
2
public BigDecimal(int val)
构造
将int表示形式转换为BigDecimal
3
public BigDecimal(String val)
构造
将字符串表示形式转换为BigDecimal
4
public BigDecimal add(BigDecimal augend)
普通
加法
5
public BigDecimal subtract(BigDecimal subtrahend)
普通
减法
6
public BigDecimal multiply(BigDecimal multiplicand)
普通
乘法
7
public BigDecimal divide(BigDecimal divisor)
普通
除法
 
 

Java从零开始学二十九(大数操作(BigIntger、BigDecimal)的更多相关文章

  1. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  2. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  3. Java从零开始学二十(集合简介)

    一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 ...

  4. Java从零开始学二十八(Math类和Random类)

    一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...

  5. Java从零开始学二十六(包装类)

    一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类 ...

  6. Java从零开始学二十二(集合Set接口)

    一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...

  7. Java从零开始学二十五(枚举定义和简单使用)

    一.枚举 枚举是指由一组固定的常量组成的类型,表示特定的数据集合,只是在这个数据集合定义时,所有可能的值都是已知的. 枚举常量的名称建议大写. 枚举常量就是枚举的静态字段,枚举常量之间使用逗号隔开. ...

  8. Java从零开始学三十二(正则表达式)

    一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...

  9. Java从零开始学四十二(DOM解析XML)

    一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...

随机推荐

  1. Google Code Jam 2009 Qualification Round Problem B. Watersheds

    https://code.google.com/codejam/contest/90101/dashboard#s=p1 Problem Geologists sometimes divide an ...

  2. django源码(2.0.2)粗解之命令行执行

    前言 django的命令行在整个的django web开发中都会经常用到,而且是必须得用到.所以,能够了解下django的命令行实现其实是非常有帮助的. 如果大家比较关心django命令的详细说明和使 ...

  3. HDU 4706 Children's Day (水题)

    Children's Day Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. IIS7.5 配置 PHP 5.3.5

    本机环境:IIS7.5 windows2008 64位 首先确认IIS中启用了CGI功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVmaWdod ...

  5. MVC扩展Filter,通过继承ActionFilterAttribute为登录密码加密

    与ActionFilter相关的接口有2个: □ IActionFilter 对action执行前后处理 void OnActionExecuting(ActionExecutingContext f ...

  6. .NET:CLR via C# A Brief Look at Metadata

    基础知识 A managed PE file has four main parts: the PE32(+) header, the CLR header, the metadata, and th ...

  7. 加载依赖的jar包在命令行编译和运行java文件

    在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做: 1. 首先是编译过程,在命令行里面执行: (1) javac -classpath ...

  8. 第七章 Xmemcached客户端介绍

    提示:有关于XMemcached在实际开发中的具体使用,查看"Java企业项目开发实践"系列博客的<第八章 企业项目开发--分布式缓存memcached> 注意:本文主 ...

  9. Remove Nth Node From End of List leetcode java

    题目: Given a linked list, remove the nth node from the end of list and return its head. For example, ...

  10. MediaPlayer 状态机 API 详解 示例

    简介 public class android.media.MediaPlayer extends Object implements VolumeAutomation 可能需要的权限: One ma ...