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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++ 中获取 可变形參函数中的參数[通俗易懂]

    C++ 中获取 可变形參函数中的參数

    2022年1月20日
    53
  • CentOS7下安装mysql5.7[通俗易懂]

    CentOS7下安装mysql5.7[通俗易懂]更多精彩技术分享请浏览本人博客:https://blog.csdn.net/wohiusdashi一、安装YUMRepo1、由于CentOS的yum源中没有mysql,需要到mysql的官网下载yumrepo配置文件。下载命令:wgethttps://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm…

    2022年4月19日
    126
  • linux下tomcat安装及配置教程

    linux下tomcat安装及配置教程tomcat是一款java语言servlet规范的服务器软件,如下的经验讲述如何使用linux环境下tomcat的安装和配置。工具/原料Linuxtomcat方法/步骤1下载tomcat压缩包如第一张图如果你是服务器linux,可以通过软件本地上传文件导linux服务器如图二也可也通过下面linux命令下载:2新建目录,并解压Tomcat软件的压缩包命令:tar…

    2022年5月31日
    357
  • 【object window】= $0

    【object window】= $0

    2021年7月19日
    63
  • LaTeX数学公式编辑(1)——行内公式&行间公式「建议收藏」

    LaTeX数学公式编辑(1)——行内公式&行间公式「建议收藏」1.行内公式2.行间公式2.1单行编号2.2单行不编号2.3多行编号2.4多行不编号3.说明4.参考文献对数学公式的排版,可以说是LaTeX中最精彩的部分.首先说需要注意的问题.数学公式中有时候会出现文字(中文或英文),需要将文字用命令\text{…}包起来.如果将文字不加处理,直接写到公式里面会出现如下问题:如果…

    2022年6月18日
    42
  • 运行时错误10048,地址已在使用_winerror193不是有效的

    运行时错误10048,地址已在使用_winerror193不是有效的图片就不放了,这个问题你肯定在代码中用到了**IP地址和端口**,如果没有请绕过。这时你主要找准自己的IP和端口替换上去就行。查找自己电脑IP和端口的方法:**第一步:Win+R****第二步:输入:cmd然后点击确定(Enter)进入****第三步:输入:ipconfig然后Enter**如图就是你的IP。第四步:输入:netstat然后Ente…

    2022年9月30日
    1

发表回复

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

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