BigInteger和BigDecimal类

news2025/1/11 15:04:08

BigInteger 和 BigDecimal 介绍

应用场景

  • BigInteger适合保存比较大的整型
  • BigDecimal适合保存精度更高的浮点型(小数)

BigInteger 和 BigDecimal 常见方法

  • 1,add 加
  • 2,subtract 减
  • 3,multiply 乘
  • 4,divide 除

BigInteger方法:

public class BigInteger_ {
    public static void main(String[] args) {
        //当我们编程中,需要处理很大的整数,long 不够用
        //可以使用 BigInteger 的类来搞定
        //报错  long i = 23788888899999999999999999999l; 数字太大
        BigInteger bigInteger = new BigInteger("237888888999999999999999999991");
        System.out.println(bigInteger);

        //在对BigInteger 进行操作时,需要使用对应的方法,不能直接用运算符;
        //可以创建一个要操作的 BigInteger 然后进行相应的操作
        BigInteger bigInteger1 = new BigInteger("1111111111111111111111");
        //加  bigInteger1+bigInteger
        BigInteger add = bigInteger1.add(bigInteger);
        System.out.println(add);//237888888999999999999999999991+1111111111111111111111
        //减 bigInteger1-bigInteger
        BigInteger subtract = bigInteger1.subtract(bigInteger);
        System.out.println(subtract);
        //乘  bigInteger1*bigInteger
        BigInteger multiply = bigInteger1.multiply(bigInteger);
        System.out.println(multiply);
        //除  bigInteger1/bigInteger
        BigInteger divide = bigInteger1.divide(bigInteger);
        System.out.println(divide);

    }
}

结果
在这里插入图片描述

BigDecimal方法:

public class BigDecimal_ {
    public static void main(String[] args) {
        //当我们需要保存一个精度很高的数,double不够用时,可以使用BigDecimal
        double d = 1999.11111111111999999999999977788222222;
        //输出 1999.11111111112  只能保存小数点后11位小数
        System.out.println(d);
        BigDecimal bigDecimal = new BigDecimal("1999.11111111111999999999999977788222222");
        // 输出 1999.11111111111999999999999977788222222
        System.out.println(bigDecimal);

        //如果对 BigDecimal 进行运算,比如加减乘除,需要使用对应的方法,
        // 创建一个需要操作的 BigDecimal 然后调用相应的方法即可
        BigDecimal bigDecimal1 = new BigDecimal(3);
        //bigDecimal+bigDecimal1
        System.out.println(bigDecimal.add(bigDecimal1));
        //bigDecimal-bigDecimal1
        System.out.println(bigDecimal.subtract(bigDecimal1));
        System.out.println(bigDecimal.multiply(bigDecimal1));
        //System.out.println(bigDecimal.divide(bigDecimal1));//会抛出异常ArithmeticException,因为可能为无限循环小数
        //解决办法:
        //在调用divide方法时,指定精度即可 BigDecimal.ROUND_CEILING,这样出现无限循环小数时,就会保留分子精度
        System.out.println(bigDecimal.divide(bigDecimal1,bigDecimal.ROUND_CEILING));
    }
}

结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序开发之tdesignUI组件的简易使用教程

文章目录 TDesign简介小程序端使用TDesign一、安装二、使用可能的问题 附:如何使用weui开发参考链接 TDesign简介 TDesign 是腾讯各业务团队在服务业务过程中沉淀的一套企业级设计体系。 该UI框架支持桌面端、移动端、小程序端等全端。 小程序端使用TDesign 开发…

深沪300etf期权如果放弃行权了会怎么样?

今天期权懂带你了解深沪300etf期权如果放弃行权了会怎么样?期权行权是指期权持有人根据合约规定,在合约有效期内以约定的行权价格购买或卖出标的资产的权利,投资者可以选择行权,当然也有个别的选择放弃行权。 深沪300etf期权如果放…

不要被git的记录误导了,git也会犯错

Android studio中有个很方便的功能,可以查看单个文件的修改记录 显示这条记录把一行代码给删除了 我们找到这条完整的提交记录看看 在这次提交中我们确实没有删除那行代码。 那这行代码到底是怎么删除的?为什么又会被认为是我们删除的呢? …

OpenAI推出DALL·E 3识别器、媒体管理器

5月8日,OpenAI在官网宣布,将推出面向其文生图模型DALLE 3 的内容识别器,以及一个媒体管理器。 随着ChatGPT、DALLE 3等生成式AI产品被大量应用在实际业务中,人们越来越难分辨AI和人类创建内容的区别,这个识别器可以帮…

MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用

亮点前瞻 ●MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成,将极大加速生成式AI应用的开发。 ●诺和诺德利用MongoDB Atlas Vector Search与Amazon Bedrock集成,加速构建AI应用程序。 MongoDB(纳斯达克股票代码&#xff1a…

小白必看:数据防泄密软件介绍|安在云和Ping32对比?

在当今数字化时代,数据防泄密软件已经成为企业和组织不可或缺的重要工具。随着信息技术的发展,企业面临着越来越多的网络安全威胁,数据泄露事件也屡见不鲜。数据防泄密软件的出现,为企业提供了有效的解决方案。 一、数据防泄密软…

每日OJ题_记忆化搜索⑤_力扣329. 矩阵中的最长递增路径

目录 力扣329. 矩阵中的最长递增路径 解析代码1_爆搜递归(超时) 解析代码2_记忆化搜索 力扣329. 矩阵中的最长递增路径 329. 矩阵中的最长递增路径 难度 困难 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每…

vscode 使用正则搜索

ctrl c 复制,内容如下: Vue3简介创建Vue3工程Vue3核心语法路由pinia组件通信其它 APIVue3新组件

腐烂的橘子

题目链接 腐烂的橘子 题目描述 注意点 grid[i][j] 仅为 0、1 或 2每分钟,腐烂的橘子周围4个方向上相邻的新鲜橘子都会腐烂 解答思路 广度优先遍历找到每分钟腐烂的橘子,将第i - 1分腐烂的橘子都添加到队列中,在第i分钟,第i -…

重学java 30.API 1.String字符串

于是,虚度的光阴换来了模糊 —— 24.5.8 一、String基础知识以及创建 1.String介绍 1.概述 String类代表字符串 2.特点 a.Java程序中的所有字符串字面值(如“abc”)都作为此类的实例(对象)实现 凡是带双引号的,都是String的对象 String s "abc&q…

Linux基础服务NFS入门篇

文章目录 Linux基础服务NFS入门篇0.前言1.NFS1.1NFS简介1.2NFS配置 Linux基础服务NFS入门篇 0.前言 本文根据大佬们的资料整理了NFS的基础知识, 加深对linux运维基础服务工具的理解,以便个人查询复习使用。 1.NFS 资料来自B站阿铭linux的印象笔记&#…

基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

17 空闲空间管理

目录 假设 底层机制 分割与合并 追踪已分配空间的大小 嵌入空闲列表 让堆增长 基本策略 最优匹配 首次匹配 下次匹配 其他方式 分离空闲列表 伙伴系统 小结 分页是将内存成大小相等的内存块,这样的机制下面,很容易去管理这些内存&#xff0c…

内外网文件传输摆渡工具大全|企业跨网文件交换解决方案

有许多文件传输工具可以用于内外网之间的安全文件传输。以下是一些常用的文件传输工具: 1、FileLink FileLink跨网文件传输系统提供一系列功能,包括文件传输审批、审计、敏感文件检查以及文件操作管控等。这些功能旨在确保文件传输的安全性和合规性&am…

Relaxed MemoryConsistency

SC和TSO都被称之为强(strong)保序模型; because the global memory order of each model usually respects (preserves) per-thread program order;回想一下,对于load和store的所有四种组合(Load -> Lo…

python-dict序列化的数据为啥前后不一致

前情提要及背景:流式数据的二次处理终结篇-CSDN博客 假如直接将dict进行str,那么编码数据都是一致的,但是在postman上就表现不那么好看,如下: 而之前的显示如下: 其中的差别就是单引号与双引号的差别了。 采用如下方案无疑是最笨的方法了: 在Python中,如果你想将处理…

CMakeLists.txt语法规则:数学运算 math

一. 简介 前面几篇文章学习了 CMakeLists.txt语法中的一些常用变量,常用命令,双引号的作用。条件判断语句,循环语句等等。 本文简单学习一下 CMakeLists.txt语法中数学运算 match。 二. CMakeLists.txt语法规则:数学运算 math 在…

倍思|西圣开放式耳机哪个好用?热门机型深度测评!

在数字化生活的浪潮中,耳机已成为我们不可或缺的伴侣。然而,长时间佩戴传统的耳机容易导致的耳道疼痛等问题,严重的话将影响听力。许多人开始寻找更为舒适的佩戴体验。开放式耳机因为不需要需直接插入耳道的设计,逐渐受到大众的青…

创新指南|共创B2B独立站出海“效果”护城河

B2B 共同创造是一种通过在整个创新过程中紧密迭代来与最重要的客户共同创造新业务价值的强大方式。我们的方法是将设计思维、精益创业和商业模式创新的方法与面向客户的特定格式相结合,以激励参与者,同时融入用户、业务和技术合作伙伴-买家视角的关键价值…

LLMs:《Better Faster Large Language Models via Multi-token Prediction》翻译与解读

LLMs:《Better & Faster Large Language Models via Multi-token Prediction》翻译与解读 目录 《Better & Faster Large Language Models via Multi-token Prediction》翻译与解读 Abstract 2、Method方法 Memory-efficient implementation 高效内存实…