码迷,mamicode.com
首页 > 编程语言 > 详细

Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

时间:2015-02-26 22:49:58      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

一、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)

标签:

原文地址:http://www.cnblogs.com/liunanjava/p/4301932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!