一、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. 华为S5300系列升级固件S5300SI-V100R006C00SPC800.cc

    这个固件附带了web,V100R005可以直接升级到这个版本,但没什么必要,因为V100R005本身可以直接升级到V200. 升级小插曲: 1.升级的使用使用Windows,不要用Mac或者Linux ...

  2. matlab运行过程中出现找不到指定模块问题解决

    对于matlab08版本以前的解决方法: 修改改环境变量: 新建变量名:BLAS_VERSION 变量值:D:\matlab7\bin\win32\atlas_Athlon.dll 在你的安装文件夹里 ...

  3. highcharts 画图选项配置(待完善------)

    在使用highcharts画图过程中,经常查阅图表选项设置,现将画图过程中设置过的选项收集记录如下留待以后参考: 折线图 <!DOCTYPE html> <html lang=&qu ...

  4. delphi win64 DEBUG不能进预设断点的问题

    delphi win64 DEBUG不能进预设断点的问题  delphi win64,debug模式下运行,如果含有中文路径,不能进断点,音频跟踪.而同样的代码,DELPHI WIN32却没有这个问题 ...

  5. ubuntu 常用配置

    root 登录 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf加:greeter-show-manual-login=true设 ...

  6. [转]聊聊技术选型 - Angular2 vs Vue2

    转载:https://juejin.im/post/58cab85b44d9040069f38f7a "Come, and take choice of all my library, An ...

  7. SSM(SpringMVC+Spring+Mybatis)框架程序on IDEA

    有了之前文章搭建的SSH框架之后,现在搭建基于Mybatis的框架.主要基于如下这篇文章: http://blog.csdn.net/gallenzhang/article/details/51932 ...

  8. 第十二章 springboot + mongodb(复杂查询)

    简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(Bas ...

  9. Cesium教程系列汇总【转】

    Cesium系列目录: 演示实例 ExamplesforCesium 最近老实有一些人问我,下载后在本地无法运行,我也不能保证每次都搭个环境看是否可行,或许Cesium升级版本后真有问题呢,索性在gi ...

  10. Minimum Window Substring leetcode java

    题目: Given a string S and a string T, find the minimum window in S which will contain all the charact ...