Java Big Number操作BigInteger及BigDecimal类详解

 更新时间:2022年07月23日 15:55:01   作者:SuperHeroes  
这篇文章主要为大家介绍了Java Big Number操作BigInteger及BigDecimal类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

BigInteger类

java.math.BigInteger 类的使用场景是大整数操作。它提供类似所有Java的基本整数运算符和java.lang.Math中的所有相关的方法的操作,如+、-、*、/、%、&、|、mod、>>、<<,以及min()、max()等等。

只不过它操作的整数都是极其大的,为科学计算提供了很大的便利。比如下面的代码就是计算20000000000000000000 * 30000000000000000000,利用BigInteger可以很容易的计算出来结果。

import java.math.BigInteger;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String a = in.nextLine();
        String b = in.nextLine();
        BigInteger biga = new BigInteger(a);
        BigInteger bigb = new BigInteger(b);
        BigInteger result = biga.multiply(bigb);
        System.out.println(result);
    }
}

//输入
30000000000000000000
20000000000000000000
//输出
600000000000000000000000000000000000000

构造函数

BigInteger提供了6个构造函数,方便取到一个大数。上方的代码就是利用形参是String的构造函数来将传入的字符串转换为BigInteger类型。常用的构造方法如下:

  • BigInteger(String val):将10进制字符串转换为BigInteger
  • BigInteger(byte[] val):将只含有0和1的bite[]数组转换为2进制表示的BigInteger值
  • BigInteger(int numBits, Random rnd):构造一个随机生成的BigInteger,均匀分布在范围0到 (2^numBits - 1)
  • BigInteger(String val, int radix):将字符串转换为指定进制的BigInteger

类方法

BigInteger的类方法有40多个,覆盖了简单四则运算、位运算、科学计算、哈希运算、类型转换等。下面是最最常用的方法:

  • BigInteger abs() :求绝对值
  • BigInteger add(BigInteger val):计算和
  • BigInteger subtract(BigInteger val):计算差
  • BigInteger multiply(BigInteger val):计算积
  • BigInteger divide(BigInteger val):计算商
  • BigInteger pow(int exponent) :计算幂
  • BigInteger remainder(BigInteger val):计算余数
  • BigInteger max(BigInteger val):返回较大值
  • BigInteger min(BigInteger val):返回较小值

BigDecimal类

java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作。该类的使用范围是小数运算。我们都知道Java的float和double是浮点数,直接进行比较操作、运算操作都会有误差,BigDecimal就不会出现这种情况。

toString()方法提供BigDecimal的规范表示。它使用户可以完全控制舍入行为。提供用于操作BigDecimal规模两种类型的操作:

  • 缩放/舍入操作
  • 小数点移动操作。

日常Coding中我还没用到过这个类,需要使用的时候再查看文档吧。不过这个类的使用方法应该和BigInteger类类似,只不过支持小数操作,在方法头中会多一些形参来控制精度或其他控制。

以上就是Java Big Number操作BigInteger及BigDecimal类详解的详细内容,更多关于Java Big Number操作的资料请关注脚本之家其它相关文章!

相关文章

  • SpringSecurity怎样使用注解控制权限

    SpringSecurity怎样使用注解控制权限

    这篇文章主要介绍了SpringSecurity怎样使用注解控制权限的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java利用happen-before规则如何实现共享变量的同步操作详解

    Java利用happen-before规则如何实现共享变量的同步操作详解

    这篇文章主要给大家介绍了关于Java利用happen-before规则实现共享变量的同步操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Spring Bean中的六种作用域你了解吗

    Spring Bean中的六种作用域你了解吗

    Bean的作用域是指Bean实例的生命周期及可见性范围,Spring框架定义了6种作用域,本文就来和大家聊聊这6种作用域的定义与使用,希望对大家有所帮助
    2023-09-09
  • Java 17 随机数生成器来了一波稳稳的增强

    Java 17 随机数生成器来了一波稳稳的增强

    JDK 当中的随机数生成器其实对于普通开发者来讲基本够用,不过对于一些比较复杂的场景来讲,原有的类结构对扩展并不是很友好,除了 Random 类,JDK 当中还提供了另外几个随机数的成员,下面文章将详细介绍,需要的朋友可以参考一下
    2021-09-09
  • Spring基于注解管理bean实现方式讲解

    Spring基于注解管理bean实现方式讲解

    很多时候我们需要根据不同的条件在容器中加载不同的Bean,或者根据不同的条件来选择是否在容器中加载某个Bean,这就是Bean的加载控制,一般我们可以通过编程式或注解式两种不同的方式来完成Bean的管理
    2023-01-01
  • Java中常见字符串拼接九种方式详细例子

    Java中常见字符串拼接九种方式详细例子

    这篇文章主要给大家介绍了关于Java中常见字符串拼接的九种方式,字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Java多线程并发synchronized 关键字

    Java多线程并发synchronized 关键字

    这篇文章主要介绍了Java多线程并发synchronized 关键字,Java 在虚拟机层面提供了 synchronized 关键字供开发者快速实现互斥同步的重量级锁来保障线程安全。
    2022-06-06
  • java如何自定义注解

    java如何自定义注解

    这篇文章主要介绍了java如何自定义注解问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Java编程实现月食简单代码分享

    Java编程实现月食简单代码分享

    这篇文章主要介绍了Java编程实现月食简单代码分享,程序很简单,喜欢的朋友可以拿过去玩玩。
    2017-11-11
  • 使用迭代器Iterator遍历Collection问题

    使用迭代器Iterator遍历Collection问题

    这篇文章主要介绍了使用迭代器Iterator遍历Collection问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论