Java大数类介绍「建议收藏」

Java大数类介绍

大家好,又见面了,我是全栈君。

java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal;或者import java.math.*;

以下从几个方面对BigIntegerBigDecima做一个简单的比較:

一.常量

BigInteger:ONE,ZERO,TEN分别代表1,0,10.

其定义类似于:public static final BigInteger ONE = valueOf(1);

BigDecimal:除了以上三个常量外还有8个关于舍入的常量:ROUND_UP,ROUND_DOWN,ROUND_CEILING,ROUND_FLOOR,ROUND_HALF_UP,

ROUND_HALF_DOWN,ROUND_HALF_EVEN,ROUND_UNNECESSARY。详细舍入模式,请查阅Java API。

二.声明赋值

BigInteger:BigInteger bi = new BigInteger(byte[] val) ;

new BigInteger(int signum, byte[] magnitude) ;

new BigInteger(int bitLength, int certainty, Random rnd) 。

new BigInteger(int numBits, Random rnd) 。

new BigInteger(String val) 。

new BigInteger(String val, int radix) ;

构造函数仅仅能接受这几种类型,,比方这样定义就是错误的:BigInteger bi = new BigInteger(100);

或:BigInteger bi = BigInteger.valueOf(100);

数组定义与基本类型类似.

BigDecimal:BigDecimal bd = new BigDecimal(100);或:BigDecimal bd = BigDecimal.valueOf(100);

BigDecimal的构造函数比BigInteger多一些,感觉用起来更方便些

顺便说一下,java.util包中的Scanner类实现了nextBigInteger()和nextBigDecimal()方法,能够用来读入控制台输入的BigInteger和BigDecimal.给个样例:

三.相关函数

add(),subtract(),pow(),abs(),multiply()等等这一类就不介绍了,奇妙的是probablePrime(int bitLength, Random rnd),  nextProbablePrime()这一类竟然和素数扯得上关系。

BigDecimal关于格式控制的方法多了几个,这对处理各种不同格式的输出是非常实用的。

stripTraillingZeros():把不影响数值大小的0全去掉。

1.50 ->1.5;

1.00->1;

这功能非常实用吧。

大家都知道JAVA的类一般都要带toString这种方法的。BigDecimal则有toString,toPlainString和toEngineeringString三种表示成字符串的方法。

以下是这三种方法各自的特点:

toString: using scientific notation if an exponent is needed;

toEngineeringString:using engineering notation if an exponent is needed.

toPlainString:without an exponent field.


 




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115552.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库精华,出自 十步一杀的博客

    数据库精华,出自 十步一杀的博客SQLite3一列多行合并为一列一行分类: 数据库2013-06-2517:02 379人阅读 评论(0) 收藏 举报A  B         ———-      1  中  1  人    2  三2  天2  李变成:A  B——————-1  中,

    2022年7月27日
    6
  • ftp命令用法_FTP常用命令的使用方法

    ftp命令用法_FTP常用命令的使用方法1.登录:ftp192.168.xx.xx回车后输入用户名和密码或者直接输入ftp回车再输入open192.168.XX.XX2.常用命令:ls和dir显示文件列表cd目录和cd…切换ftp服务器路径lcd切换本地目录put和get上传、下载文件send上

    2022年9月2日
    2
  • 圆柱体的立方米怎么计算公式_圆锥体积计算公式

    圆柱体的立方米怎么计算公式_圆锥体积计算公式2020-11-27石雕圆柱制作价格一般根据石雕圆柱的雕刻材料不同、颜色不同、大小及工艺的复杂程度价格区间一般在5000–25000元每根。坐落于福建省泉州市惠安县的腾磊石材有限公司是石材圆柱厂家,专业生产石雕圆柱。提供各式石雕圆柱加工,客户可来电方式咨询关于石雕圆柱。我国的石雕圆柱文化除了具有图腾性质和纪念性的华表、墓表…[详细]2020-12-14厂家加工石雕圆柱坐落于福建省泉州市惠安县…

    2022年9月20日
    3
  • [排序算法]–冒泡排序的三种实现(Java)

    [排序算法]–冒泡排序的三种实现(Java)冒泡排序是非常好理解的,以从小到大排序为例,每一轮排序就找出未排序序列中最大值放在最后。设数组的长度为N:(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。(3)N=N-1,如果N不为0就重复前面二步,否则排序完成。以上就是冒泡排序的基本思想,按照这个定义很快就能写

    2022年6月22日
    26
  • 谷歌提出新的字体调用方案帮助提高中文字体的加载速度

    谷歌提出新的字体调用方案帮助提高中文字体的加载速度

    2022年3月6日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号