Java - 常用类 - BigInteger 和 BigDecimal

2023-11-11

BigInteger 和 BigDecimal 介绍

应用场景

  1. BigInteger适合保存比较大的整型
  2. BigDecimal适合保存精度更高的浮点型(小数)
package com.tao.biginteger_;

import java.math.BigInteger;

/**
 * Create By 刘鸿涛
 * 2022/1/3 23:14
 */
public class BigInteger_ {
    public static void main(String[] args) {
        //Long 不够用时
        long l = 2323232454587787877L;  //不能再加了!!
        System.out.println("l = " + l);

        //BigInteger
        BigInteger bigInteger = new BigInteger("464664648574744464646464646464");//注意引号
        System.out.println(bigInteger);
        //1.在对 BigInteger 进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /
        //2.创建一个要操作的 BigInteger 然后进行相应的操作
        BigInteger add_ = new BigInteger("1");
        add_ = bigInteger.add(add_);
        System.out.println(add_);

        BigInteger subtract_ = bigInteger.subtract(add_);
        System.out.println(subtract_);

        BigInteger bigInteger1 = new BigInteger("1");
        BigInteger multiply_ = bigInteger.multiply(bigInteger1);
        System.out.println(multiply_);

        BigInteger divide_ = bigInteger.divide(bigInteger1);
        System.out.println(divide_);
        
    }
}

l = 2323232454587787877
464664648574744464646464646464
464664648574744464646464646465
-1
464664648574744464646464646464
464664648574744464646464646464

package com.tao.biginteger_;

import java.math.BigDecimal;

/**
 * Create By 刘鸿涛
 * 2022/1/3 23:33
 */
public class BigDecimal_ {
    public static void main(String[] args) {
        //当我们需要保存一个精度很高的数时,double 不够用
        //可以使用 BigDecimal
        double d = 1999.111111111111111111111111111111d;
        System.out.println(d);  //1999.111111111111
        BigDecimal bigDecimal = new BigDecimal("1999.11");
        System.out.println(bigDecimal);

        //1.如果对 BigDecimal 进行运算,比如 + - * /,需要使用对应的方法
        //2.需要创建一个需要操作的 BigDecimal 然后调用相应方法
        BigDecimal bigDecimal1 = new BigDecimal("1.1");
        System.out.println(bigDecimal.add(bigDecimal1));
        System.out.println(bigDecimal.subtract(bigDecimal1));
        System.out.println(bigDecimal.multiply(bigDecimal1));
//        System.out.println(bigDecimal.divide(bigDecimal1)); //可能抛出异常,因为除不尽
        //解决方案
        //在调用divide方法时,指定精度即可,BigDecimal.ROUND_CEILING
        //如果有无限循环小数,就会保留 分母的 精度
        System.out.println(bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING));
    }
}

1999.111111111111
1999.11
2000.21
1998.01
2199.021
1817.38

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

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

  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 使用架构注册表对 avro 消息进行 Spring 云合约测试

    我正在查看 spring 文档和 spring github 我可以看到一些非常基本的内容examples https github com spring cloud samples spring cloud contract sample
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • 巡检服务

    巡检管理服务是指服务商对客户的IT应用系统 业务系统及相关设备进行周期性 主动性的健康检查服务 旨在及时发现已有或潜在问题 提出改进建议和措施 防止故障的发生 围绕巡检服务管理的目标进行巡检服务规划 组建巡检服务团队 监理巡检服务管理制度及
  • 如何查看Jetson TX1/2 CPU和GPU性能使用状态

    如何查看Jetson TX1 2 CPU和GPU性能使用状态 官方给了一个脚本文件 我们使用超级权限运行即可 sudo tegrastats 效果如下 RAM 4634 7854MB lfb 2x512kB cpu 0 1112 off o
  • Java 集合之Collection

    首先我们看下Collection的结构图 从结构图上我们可以看到Collection集合下面有3个比较大的实现 Set List Queue在日常开放过程中我们比较常用的是Set与List 针对Queue我在之前的博客中也有所介绍 在这里不
  • 登录界面设计测试---适合背诵

    主要从功能 易用性 性能 安全 兼容 一 功能测试 1 7 case 主要体现 用户名和密码 账号问题 8 12 case 主要体现 验证 图片或短信 13 20 case 主要体现 特别场景 1 输入已注册的用户名和正确的密码 验证是否成
  • Window的Java环境安装

    一 Window的Java环境安装 1 下载百度网盘的Java环境jdk 8u131 windows x64 exe 2 点击jdk 8u131 windows x64 exe 下一步 3 更改Java你想安装位置 点击下一步 4 Java
  • MATLAB反三角函数arcsecx, arccscx, arctanx, arccotx, arcsinx, arccosx绘图表示

    matlab源代码 依次为 arcsecx arccscx arctanx arccotx arcsinx arccosx figure 1 x 0 0 01 pi y sec x plot y x title arcsecx set gc
  • (一)调试RocketMq源码

    文章目录 一 启动NameServer 1 1namesrv模块找到NamesrvStartup java 1 2修改配置文件目录 1 3启动NamesrvStartup java 二 配置Broker 2 1配置BrokerStartup
  • Ubuntu Linux中hostname`命令

    当然 让我们将关于在Ubuntu Linux中理解hostname的知识转化为列表形式 参考 https www howtouseubuntu com network change hostname in ubuntu linux 定义 h
  • 第四章 Linux实用操作

    1 软件安装 1 1 CentOS 1 2 Ubuntu 2 systemctl控制软件启动关闭 mp4 3 软链接 4 日期和时区 4 1 date命令 4 2 ntp程序 4 3 小结 5 IP地址和主机名 6 配置Linux固定IP地
  • 【干货】PCB线宽与电流关系

    以下总结了八种电流与线宽的关系公式 表和计算公式 虽然各不相同 大体相近 但大家可以在实际的PCB板设计中 综合考虑PCB板的大小 通过电流 选择一个合适的线宽 PCB电流与线宽 PCB载流能力的计算一直缺乏权威的技术方法 公式 经验丰富C
  • MoCo v1 论文笔记

    Momentum Contrast for Unsupervised Visual Representation Learning 论文笔记 DETR 论文笔记 Momentum Contrast for Unsupervised Visu
  • 三因素方差分析_【科研加油站】SPSS操作之三因素方差分析

    点击上方蓝字 轻松关注我们 以下内容转载自 医咖会 微信公众号 medieco ykh 作者Jane 上一期我们讨论了双因素方差分析 本期 科研加油站 栏目 我们一起来探讨三因素方差分析 问题与数据 某研究者想研究某类新药降低胆固醇水平的效
  • CData API Server全面且文档完整的API

    CData API Server全面且文档完整的API 使用现有业务信息创建API 连接到任何SQL以及NoSQL数据库以及API服务器 都会立即生成灵活 全面且文档完整的API 发现数据集成的潜力 API服务器API服务器提供了在企业AP
  • register的用法c语言,C语言中auto,static,register,extern存储类型的用法

    在C语言中提供的存储类型说明符有auto extern static register 说明的四种存储类别 四种存储类别说明符有两种存储期 自动存储期和静态存储期 其中auto和register对应自动存储期 具有自动存储期的变量在进入声明
  • Unity脚本API—Transform 变换

    场景中的每一个对象都有一个Transform 用于储存并操控物体的位置 旋转和缩放 每一个Transform可以有一个父级 允许你分层次应用位置 旋转和缩放 可以在Hierarchy面板查看层次关系 他们也支持计数器 enumerator
  • AGV调度系统/两阶段算法模拟源代码 地图建模

    多 AGV调度系统 两阶段算法模拟源代码 地图建模c openTCS1 AGV调度系统源码 OpenTCS OpenTCS是一个开源的AGV调度系统程序 能给初入AGV行业的人士一些帮助 该实例是包含源码的程序 可成功运行 2 openTC
  • UE4 蓝图数组反转节点ReverseforEachLoop的坑

    由于蓝图没有直接反转数组的节点类似于C 的reverse 所以只好用ReverseforEachLoop这个节点 但是这个节点有个坑 就是ArrayIndex是从数组末尾元素下标开始输出 并非是从0开始 因此如果要用到ArrayIndex得
  • 记录一次JVM发生OOM问题的解决,包括jvisualvm工具的使用,以及对GC的理解等

    目录 OOM原因分析 解决 利用hprof文件分析的步骤 结合jvisualvm工具 jvisualvm实时监控本地jvm jvisualvm实时监控远程jvm 对于JVM的GC理解 Minor GC Full GC 常用JVM参数配置 查
  • WIN32 资源

    首先解释一下句柄 win32中的句柄在数值上表示一个32位的数 用来标识应用程序 进程中不同对象以及同类对象中的不同实例 而所谓实例就是指被实例化的对象 实例化的过程就是通过类创建对象的过程 实例化对象的目地是为对象开辟内存空间 所以句柄是
  • Java - 常用类 - BigInteger 和 BigDecimal

    文章目录 BigInteger 和 BigDecimal 介绍 应用场景 BigInteger 和 BigDecimal 介绍 应用场景 BigInteger适合保存比较大的整型 BigDecimal适合保存精度更高的浮点型 小数 pack