在Java中,偶尔会遇到超大数值,超出了已有的int,double,float等等你已知的整数、浮点数范围,那么可以使用java.math包中的两个类:BigInteger和BigDecimal。

这两个类很牛批!!可以处理包含任意长度的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。

类不可以直接被使用,那么就需要调用它们的下属方法来使用,其中静态的valueOf方法可以将普通数值转化为大数值:

BigInteger a =  BigInteger.valueOf (100) ;

但是万事做不到完美,使用了大数值,加减乘除等基本运算就发生了改变,不再是平常的运算符(如:+和*),而是有了固定的方法需要去调用。

下面举两个例子,分别是加和乘(add 和 multiply):

BigInteger c = a.add(b); //c=a+b

BigInteger d = c.multiply(b.add(BigInteger.valueOf (2))); //d=c*(b+2)

下面列举BigInteger类和BigDecimal类中的方法

java.math.BigInteger1.1

  • BigInteger add(BigInteger other)
  • BigInteger subtract(BigInteger other)
  • BigInteger multiply(BigInteger other)
  • BigInteger divide(BigInteger other)
  • BigInteger mod(BigInteger other)

返回这个大整数和另一个大整数other的和、差、积、商以及余数。

  • int compareTo(BigInteger other)

如果这个大整数与另一个大整数other相等,返回0;如果这个大整数小于另一个大整数other,返回负数;否则,返回正数。

  • static BigInteger valueOf (long x)

返回值等于x的大整数。

java.math.BigDecimal1.1

  • BigDecimal add(BigDecimal other)
  • BigDecimal subtract(BigDecimal other)
  • BigDecimal multiply(BigDecimal other)
  • BigDecimal divide(BigDecimal other RoundingMode mode) 5.0

返回这个大实数和另一个大实数other的和、差、积、商。想要计算商,必须给出舍入方式(rounding mode)。RoundingMode.HALF_UP是最常见的四舍五入方式。它适用于常规的计算。有关其它的舍入方式请参看API文档——见文低附录。

  • int compareTo(BigDecimal other)

如果这个大实数与另一个大实数other相等,返回0;如果这个大实数小于另一个大实数other,返回负数;否则,返回正数。

  • static BigDecimal valueOf (long x)
  • static BigDecimal valueOf (long x , int scale)

返回值为x或x / 10scale 的一个大实数

附录:API文档——https://pan.baidu.com/s/14IZu6fJH4uB8rnsfSACz4w

Java中的大数值使用的更多相关文章

  1. 【Java编程】Java中的大整数计算

    在上一篇文章中,我们实现了c语言中的大整数的运算,并且用Miller-Rabin算法实现了对大素数的测试.本来我准备用Java代码实现大整数的运算,查了一下资料发现Java中java.math的Big ...

  2. Java中4大基本加密算法解析

    简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algor ...

  3. java中难度大一点的面试题

    1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...

  4. java中Redis5大基本类型的用法

    存储格式 基本用法 通过Jedis(封装了redis的Java客户端)对redis进行操作. Jedis工具类 public class JedisPoolUtil { private static ...

  5. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

  6. Java中初级数值类型的大小, volatile和包装类wrapped type的比较

    Java中的初级数值类型 Java是静态类型语言, 所有的变量必须先声明再使用. 其初级类型一共8种: boolean: 数据只包含1bit信息, 但是占空间为8-bit, 默认值为false byt ...

  7. Java 中包装类wrapped type之间以及和primitive type的比较

    注意, 包装类的实例之间比较, 是不能直接用 == 的 public static void main(String[] args) { // TODO Auto-generated method s ...

  8. java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;

    <java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...

  9. Java基础语法<五> 大数值BigInteger BigDecimal

    笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有平有用的类:BigIn ...

随机推荐

  1. 斐讯N1搭建高性能博客

    前些日子我在网上淘到了一台斐讯n1,Amlogic S905D的板子让这个盒子平滑地用上了Armbian系统,有了linux的加持,让这个设备的玩法又上升了一个层次,网上大多都是把他作为旁路由用来富强 ...

  2. Java将日期转化为大写格式(阿拉伯大写数字)

    效果: 代码部分: public static void main(String[] args) { SimpleDateFormat sdf=new SimpleDateFormat("y ...

  3. [ APUE ] 第三章 文件系统

    1. 文件描述符 打开或创建一个文件时,内核向进程返回一个文件描述符,当读.写一个文件时,用open()或creat()返回的文件描述符标识该文件,将其作为参数传递给write.read. stdin ...

  4. 02.Hamcrest和TestSuite介绍

    1.首先第一步需要导入对应的jar包 我们来看下面的一个例子 OK,在前面的一系列博客里面,我整理过了Assert类下面常用的断言方法,比如assertEquals等等,但是org.junit.Ass ...

  5. 怎样用 I/O流读取txt文件?

    java.io包提供了用来永久保存对象状态的机制,可处理各种类型的流,如文件流.字节流.字符流等,还提供实现可串行化Serializable接口.可处理对象流. Java语言提供3种自动生成的标准流. ...

  6. ionic2/Angularjs cordova node.js

    ionic 和 cordova 的区别 环境的搭建{node.js,jdk1.8/jdk1.7,android sdk,intellijIdea,ionic,cordova} nodejs+ionic ...

  7. Centos7-Docker1.12开启守护进程(远程调用)

    本文讲述了Docker1.12.6在Linux下开启守护进程(远程调用),理论上来说其他版本也是一样的改法,博主参考很多都是巨坑,综合自己实战分享给大家,如有错误请留言; - 修改配置 1.修改 do ...

  8. For setting NODE_ENV you can use any of these methods.

    method 1: set NODE_ENV for all node apps Windows: set NODE_ENV=production Linux or other Unix based ...

  9. 如何修复 WordPress 中的 HTTP 错误

    如何修复我们会向你介绍,如何在 Linux VPS 上修复 WordPress 中的 HTTP 错误. 下面列出了 WordPress 用户遇到的最常见的 HTTP 错误,我们的建议侧重于如何发现错误 ...

  10. HTML5(六)表单合集

    HTML5 表单元素 HTML5 新的表单元素 HTML5 有以下新的表单元素: datalist keygen output HTML5 datalist 元素 <datalist> 元 ...