BigInteger类和BigDecimal类

news2024/11/24 6:52:13

BigInteger类

BigInteger适合保存比较大的整型
当在编程中遇到需要保存一个特别大的数字,比如地球的人口。
这时如果用long类型保存可能都不够了,此时就需要用到BigInteger
在这里插入图片描述

  • BigInteger不能直接±*/
  • add()加
  • subtract()减
  • multiply()乘
  • divide()除
    使用演示:
public class test2 {
    public static void main(String[] args) {
        BigInteger bigInteger = new BigInteger("999999999999999999999999999999999999");
        BigInteger big2 = new BigInteger("1");
        //加
        BigInteger add = bigInteger.add(big2);
        System.out.println(add);
        //减
        BigInteger subtract = bigInteger.subtract(big2);
        System.out.println(subtract);
        //乘
        BigInteger multiply = bigInteger.multiply(big2);
        System.out.println(multiply);
        //除
        BigInteger divide = bigInteger.divide(big2);
        System.out.println(divide);
    }
}

BigDecimal类

BigDecimal类用于保存精度需求很高的浮点类型(小数),比如天文运算,银行,
在使用double类型保存时,小数超过一定长度就会损失精度

double num = 902.1234567891112222333444555666;
        System.out.println(num);

运行结果是:
902.1234567891112
很明显后面的精度直接没了,此时就需要用到BigDecimal保存
BigDecimal和BigInteger一样不能直接加减乘除,同样是使用方法

使用演示:

public class test2 {
    public static void main(String[] args) {
        BigDecimal bigDecimalr = new BigDecimal("902.1234567891112222333444555666");
        BigDecimal big2 = new BigDecimal("1.1");
        //加
        BigDecimal add = bigDecimalr.add(big2);
        System.out.println(add);
        //减
        BigDecimal subtract = bigDecimalr.subtract(big2);
        System.out.println(subtract);
        //乘
        BigDecimal multiply = bigDecimalr.multiply(big2);
        System.out.println(multiply);
        //除
        //BigDecimal divide = bigDecimalr.divide(big2);
        //System.out.println(divide);
    }
}

注意点:在精度很高的除法运算中,很可能会得到无限小数,比如上面的数除以1.1
而导致报异常,所以需要我们处理一下

public class test2 {
    public static void main(String[] args) {
        BigDecimal bigDecimalr = new BigDecimal("902.12");
        BigDecimal big2 = new BigDecimal("1.1");
        //除
        BigDecimal divide = bigDecimalr.divide(big2,BigDecimal.ROUND_CEILING);
        System.out.println(divide);
    }
}

ROUND_CEILING表示将结果限制到被除数的小数精度长度,比如上面的被除数是902.12,只有两位小数,那么除1.1后得到的结果也是保留两位小数。

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

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

相关文章

推荐系统学习笔记-论文研读--渐进分层抽取的多任务学习模型

研究背景 多任务相关性的复杂性和竞争性,MTL模型往往会出 现性能退化和负迁移跷跷板现象,即一项任务的性能往往会因影响其他任 务的性能而得到提高 研究成果 跷跷板现象的发现,MTL由于复杂的内在关联性而没有优于相应的单任务模型从联合表…

[附源码]Node.js计算机毕业设计仿咸鱼二手物品交易系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

11月CPI超预期放缓,下一步加息基调且看今晚

随着2022年最后一次美国“通胀报告”的公布,美联储未来政策走向决议将迎来关键时刻!12月13日晚,美国劳工部公布的报告显示,美国11月CPI同比增长7.1%,超预期放缓,增速低于预期值7.3%和前值 7.7%。美国11月核…

SSM个人饮食管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 个人饮食管理系统 网站前台:关于我们、联系我们、新闻信息、食谱信息、交流信息 管理员功能: 1、…

JavaScript(四):流程控制

流程控制if语句if else 语句(双分支语句)if -else if语句(多分支语句)三元表达式switch语句for循环while循环do while 循环continue关键字break关键字if语句 语法结构 if(条件表达式){ //条件成立执行的代…

计算摄影——风格迁移

这一章来总结一下图像风格迁移相关的内容,风格迁移的任务是将一幅图作为内容图,从另外一幅画中抽取艺术风格,两者一起合成新的艺术画,要求合成的作品即保持内容图的主要结构和主体,又能够具有风格图的风格,…

精品spring boot+MySQL新冠物资管理系统vue

《spring bootMySQL新冠物资管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术: 操作系统:Windows 10、Windows 7、Windows 8 开发语言:Java 使用框架:spring boot 前端技术&…

人乳铁蛋白:艾美捷Kamiya ELISA试剂盒解决方案

乳铁蛋白是一个分子量为80 kDa的铁结合糖蛋白,属于转铁蛋白家族 [1] 。乳铁蛋白在初乳和牛奶中含量高,在眼泪、唾液、和支气管分泌物、胆汁和胃肠液等粘膜分泌物中的含量较低。此外,乳铁蛋白也是中性粒细胞的组成成分。 1939年Sorensen等人在…

java计算机毕业设计springboot+vue健康体检信息管理系统

项目介绍 随时代变化,中国作为一个经济发展快速,人口基础较为庞大的国家,健康体检产业发展迅速。健康体检也基本上成为了每家每年必须要考虑的事情。在用户群体的规模如此庞大的基础上,以健康体检为主要内容的行业应运而生,并且随着用户数量的不断增加,其规模也随之不断发展。…

java实现延时处理

业务场景: 1、生成订单30分钟未支付,则自动取消,我们该怎么实现呢? 2、生成订单60秒后,给用户发短信 延时任务和定时任务的区别: 定时任务有明确的触发时间,延时任务没有;定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期;定时任务一般执行的…

大三Web课程设计(可以很好的应付老师的作业) 家乡主题网页设计 我的家乡广州

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

【Redis】介绍

文章目录NoSQL 数据库Redis 数据库配套视频课: https://www.bilibili.com/video/BV1Rv41177Af/NoSQL 数据库 1、NoSQL 定义 NoSQL(Not Only SQL)泛指非关系型数据库。NoSQL不依赖业务逻辑方式存储,而以简单的key-value模式存储&…

27K测试老鸟6年经验的面试心得,四种公司、四种问题…

这里总结了下自己今年的面试情况 先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能。趁着金三银四跳槽季,面试字节跳动测试岗技术面都已经过了,本来以为是…

阿里云弹性公网ip如何从包年包月转换为按量付费(按使用流量计费)?

开通包年包月的弹性公网ip后,想将计费方式转换为按量付费(按使用流量计费)的,应该如何操作呢? 操作流程如下: 第一步,包年包月转换为按量付费(按固定带宽计费)。 1.登录…

【C++11】基础改变

1.关于C11的介绍 C11标准为C编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology -- Programming languages -- C 。 在正式标准发布前,原名C0x。它将取代C标准第二版ISO/IEC 14882:2003 - Programming languages -- C 成为C…

上线3天,下载4万,ChatGPT中文版VSCode插件来了

ChatGPT 这几天可谓是风头无两。作为一个问答语言模型,它最大的优点就是可以回答与编程相关的问题,甚至回复一段代码。 尽管有人指出 ChatGPT 生成的代码有错误,但程序员们还是对它写代码、找 bug 的功能很感兴趣,有人还给 VScode…

一千字认识NodeJS

在学习Node.js时,发现一处课程通过介绍网站开发来引入Node.js的思路很有意思,在此将整个过程以自己的理解记录了下来,供大家学习交流😀😀😀 前端和后端 众所周知,前端程序yuan通常写的是浏览器…

数据库--------用户的授权

目录 授权例1例2例3例4例5收回例1例2例3授权 GRANT语句格式: GRANT <权限> [,<权限>]

SpringBoot打的jar包瘦身

文章目录正常打包瘦身方法一&#xff1a;Dloader.path指定依赖包位置瘦身方法二&#xff1a;配置文件里指定依赖包位置正常打包 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plu…

Talk预告 | 香港理工大学计算机系助理教授杨波:无监督2D/3D物体实例分割

本期为TechBeat人工智能社区第462期线上Talk&#xff01; 北京时间12月14日(周三)20:00&#xff0c;香港理工大学计算机系助理教授——杨波的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “无监督2D/3D物体实例分割”&#xff0c;届时将介绍香港理…