Java常用类:BigInteger和BigDecimal类

2023-10-27

目录

1.BigInteger类

2.BigDecimal类


1.BigInteger类

当需要很大的整数,long不够用时,可以使用BigInteger类来搞定

(1).在对BigInteger 进行加减乘除时,需要使用对应的方法

(2).可以创建一个要操作的BigInteger 然后进行操作

应用例题如下:

import java.math.BigInteger;
public class BigInteger_ {
    public static void main(String[] args) {
        //当需要很大的整数,long不够用时,可以使用BigInteger类来搞定
        BigInteger bigInteger = new BigInteger("99999999999999999999999999999999999");
        BigInteger bigInteger2 = new BigInteger("1111111111");
        System.out.println(bigInteger);
        //(1).在对BigInteger 进行加减乘除时,需要使用对应的方法
        //(2).可以创建一个要操作的BigInteger 然后进行操作
        //加
        BigInteger add=bigInteger.add(bigInteger2);
        System.out.println(add);
        //减
        BigInteger subtract=bigInteger.subtract(bigInteger2);
        System.out.println(subtract);
        //乘
        BigInteger multiply=bigInteger.multiply(bigInteger2);
        System.out.println(multiply);
        //除
        BigInteger divide=bigInteger.divide(bigInteger2);
        System.out.println(divide);

    }
}

运行结果如下:

99999999999999999999999999999999999
100000000000000000000000001111111110
99999999999999999999999998888888888
111111111099999999999999999999999998888888889
90000000009000000000900000

2.BigDecimal类

当我们需要保存精度很高的数时,double不够,可以使用BigDecimal类

(1).在对BigInteger 进行加减乘除时,需要使用对应的方法

(2).可以创建一个要操作的BigInteger 然后进行操作

应用例题如下:

import java.math.BigDecimal;
public class BigDecimal1 {
    public static void main(String[] args) {
        //当我们需要保存精度很高的数时,double不够,可以使用BigDecimal类

        BigDecimal bigDecimal = new BigDecimal("199.999999999999999999999999999");
        BigDecimal bigDecimal2 = new BigDecimal("1.1");
        System.out.println(bigDecimal);

        //(1).在对BigInteger 进行加减乘除时,需要使用对应的方法
        //(2).可以创建一个要操作的BigInteger 然后进行操作
        //加
        System.out.println(bigDecimal.add(bigDecimal2));
        //减
        System.out.println(bigDecimal.subtract(bigDecimal2));
        //乘
        System.out.println(bigDecimal.multiply(bigDecimal2));
        //除
        //System.out.println(bigDecimal.divide(bigDecimal2)可能会抛出异常ArithmticException
        //调用diVide方法时,指定精度即可,BigDecimal.ROUND_CEILING
        //如果有无限循环的小数,就会保留分子的精度
        System.out.println(bigDecimal.divide(bigDecimal2,BigDecimal.ROUND_CEILING));
    }
}

运行结果如下:

199.999999999999999999999999999
201.099999999999999999999999999
198.899999999999999999999999999
219.9999999999999999999999999989
181.818181818181818181818181818

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java常用类:BigInteger和BigDecimal类 的相关文章

  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐