重学java 31.API 3.数学相关类

news2025/1/16 12:33:14

看似不起波澜的日复一日,会突然在某一天让人看到坚持的意义

                                                                                        —— 24.5.8

数学相关类

1.Math类介绍

1.概述

        数学工具类

2.作用

        主要用于数学运算

3.特点

        a、构造方法私有了

        b、方法都是静态的

4.使用

        类名直接调用

        static int abs(int a) ->求参数的绝对值 

        static double ceil(double a) -> 向上取整

        static double floor(double a) ->向下取整

        static long round(double a) ->四舍五入

        static int max(int a,int b)->求两个数之间的较大值

        static int min(int a,int b)->求两个数之间的较小值

5.示例

    public static void main(String[] args) {
        // static int abs(int a)->求参数的绝对值 import static java.lang.Math.abs;
        int abs = Math.abs(-27);
        System.out.println("绝对值:"+ abs);
        // static double ceil(double a)-> 向上取整
        double ceil = Math.ceil(62.1);
        System.out.println("向上取整:"+ceil);
        // static double floor(double a)->向下取整
        double floor = Math.floor(63.9);
        System.out.println("向下取整:"+floor);
        // static long round(double a)->四舍五入
        long round = Math.round(62.6);
        System.out.println("四舍五入:"+round);
        // static int max(int a,int b)->求两个数之间的较大值
        int max = Math.max(63,81);
        System.out.println("较大值:"+max);
        // static int min(int a,int b)->求两个数之间的较小值
        int min = Math.min(81,63);
        System.out.println("较小值:"+min);
    }

API文档

        搜索 JDK API

具体方法可以查阅API文档(搜索 JDK API)

2.BigInteger类的介绍和使用

1.BigInteger介绍

1.问题描述:

        我们操作数据,将来的数据有可能非常大,大到比1ong还要大,这种数据我们一般称之为"对象"

2.作用:

处理超大整数

3.构造:

BigInteger(string va1)-> 参数的格式必须是数字形式

4.方法:

BigInteger add(BigInteger val), 其返回值为(this + val)的 BigInteger
BigInteger subtract(BigInteger val), 其返回值为(this - val)的 BigInteger
BigInteger multiply(BigInteger val),其返回值为(this * val)的 BigInteger
BigInteger divide(BigInteger val),其返回值为(this / val)的 BigInteger

2.BigInteger使用

    public static void main(String[] args) {
        BigInteger b1 = new BigInteger("212121212221212121112121212122211144545");
        BigInteger b2 = new BigInteger("212121212221212121112121212122211155545");
        // BigInteger add(BigInteger val), 其返回值为(this + val)的 BigInteger
        System.out.println(b1.add(b2));

        // BigInteger subtract(BigInteger val), 其返回值为(this - val)的 BigInteger
        System.out.println(b2.subtract(b1));

        // BigInteger multiply(BigInteger val),其返回值为(this * val)的 BigInteger
        System.out.println(b2.multiply(b1));

        // BigInteger divide(BigInteger val),其返回值为(this / val)的 BigInteger
        System.out.println(b2.divide(b1));
    }

int intValue()BigInteger转成int
longlongValue()BigInteger 转成 longBigInteger

上限:42亿的21亿次方,内存根本扛不住,所以我们可以认为Biginteger无上限

3.BigDecimal类的介绍和使用

1.BigDecimal介绍

1.问题描述:

        我们知道直接用f1oat战者doub1微运算会出现精座损失的问题,所以将案设计到钱,我们就不能用float或者double直接做运算

2.作用:

       主要是解决float和double直接做运算出现的精度损失问题

3.构造方法:

BigDecimal(string val)->va1必须要是数字形式

4.常用方法:

        static BigDecimal valueof(double val) --> 此方法初始化小数时可以传入double型数据

        BigDecimal add(BigDecimal val) 返回其值为(this + val)的BigDecimal

        BigDecimal subtract(BigDecimal val) 返回其值为(this - val)的 BigDecimal

        BigDecimal multiply(BigDecimal val) 返回其值为(this * val)的 BigDecimal

        BigDecimal divide(BigDecimal val) 返回其值为(this / val)的 BigDecimal

        BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

                divisor:被除数

                scale:指定保留几位小数

                roundingMode:取舍方式,查阅API文档

                        static int ROUND_UP --> 向上加1
                        static int ROUND_DOWN --> 直接舍去
                        static int ROUND_HALF_UP --> 四舍五入

5.注意:

        如果除不尽,会报错,出现运算异常

2.BigDecimal使用

    public static void main(String[] args) {

        big01();
        big02();
        big03();
    }

    private static void big03() {
        BigDecimal b1 = new BigDecimal("3.55");
        BigDecimal b2 = BigDecimal.valueOf(2.12);
        BigDecimal divide = b1.divide(b2,2,BigDecimal.ROUND_UP);
        System.out.println("b1/b2="+divide);
    }

    private static void big02() {
        BigDecimal b1 = new BigDecimal("3.55");
        // static BigDecimal valueof(double val) --> 此方法初始化小数时可以传入double型数据
        BigDecimal b2 = BigDecimal.valueOf(2.12);
        // BigDecimal add(BigDecimal val) 返回其值为(this + val)的BigDecimal
        System.out.println("b1+b2="+b1.add(b2));
        // BigDecimal subtract(BigDecimal val) 返回其值为(this - val)的 BigDecimal
        System.out.println("b1-b2="+b1.subtract(b2));
        // BigDecimal multiply(BigDecimal val) 返回其值为(this * val)的 BigDecimal
        System.out.println("b1*b2="+b1.multiply(b2));
        // BigDecimal divide(BigDecimal val) 返回其值为(this / val)的 BigDecimal
        // System.out.println("b1/b2="+b1.divide(b2));// 除不尽,报错,出现运算异常
    }

    private static void big01() {
        float a = 3.55f;
        float b = 2.12f;
        float result = a-b;
        System.out.println("result = " + result);// result = 1.4300001
    }

double deubleValue()将此BigDecimal转成double

        double v = divide.doubleValue();
        System.out.println(v);

3.BigDecimal除法过时方法解决

1.注意:

        如果调用的成员上面有一个横线,证明此成员过时了,底层会有一个注解@Deprecated修饰,但是过时的成员还能使用,只不过被新的成员代替了,不推荐使用了

2.方法:

        divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

                divisor:代表除号后面的数据

                scale:保留几位小数
                roundingMode:取舍方式-> RoundingMode是一个枚举,里面成员可以类名直接调用

                        UP:向上加1
                        DOWN:直接舍去
                        HALF UP:四舍五入

3.示例:
    private static void big04() {
        BigDecimal b1 = new BigDecimal("3.55");
        BigDecimal b2 = BigDecimal.valueOf(2.12);
        BigDecimal divide = b1.divide(b2,2, RoundingMode.DOWN);
        System.out.println("b1/b2 向下取整="+divide);
        divide = b1.divide(b2,2, RoundingMode.UP);
        System.out.println("b1/b2 向上取整 ="+divide);
    }

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

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

相关文章

ChatGLM-Math:强化数学能力

大型语言模型(LLM)在文本摘要、问答和角色扮演对话等语言任务上表现出色,在数学推理等复杂问题上也具有应用潜力。 但目前提高 LLM 数学问题解决能力的方法,往往会导致其他方面能力的下降。例如RLHF的方法,虽然可以提…

软考系列必过资料分享-系统架构师-系统分析师-信息系统项目管理师

建议,写在前面 知识点是公用的,原则上不分新旧。每年会有少部分的题目切合当前时间段(也是通过旧的知识演变的) 信息系统项目管理师证书 系统架构师证书 系统分析师证书 资料分享 关注公众号 回复 信息系统项目管理师资料 即可获取信息系统项目管理师资…

翻译《The Old New Thing》 - The new scratch program

The new scratch program - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20050422-08/?p35813 Raymond Chen 2005年4月22日 译注:此篇是 翻译《The Old New Thing》 - The scratch program 姊妹篇,对 scratch 程序作…

【通信】电子科协通信专题

数字通信 最直观的通信方式-基带通信 问题:①无限大的带宽②天线体积

[QTcreator]QT中一个cpp文件如何使用另一个界面的控件

在工作过程中将函数封装成一个类放入一个cpp文件中,但是里面的函数需要运用到其他界面的控件,以此记录昨天的学习。 首先明确一下我需要在vtkfuntion.cpp使用mainwindow.ui中的qvtkwidget控件 step1:更改mainwindow.h 添加需要应用的文件的头文件&…

python:画饼图

我现在因工作需要在写一篇中文文章,领导要我用python处理数据和画图,那我也刚好学习一下python画图。 import matplotlib.pyplot as plt # 饼图数据 labels [A, B, C, D] sizes [15, 30, 45, 10] # 每个部分的大小 # 绘制饼图 plt.figure(figsize(6,…

Spring Web MVC 快速入门

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 什么是Spring MVC? MVC模式介绍 ​编辑学习Spring MVC…

开源数据可视化大屏对接表单数据实践!

如果你需要一个表单系统,进行数据收集;可以使用tduck填鸭进行私有化部署,进行表单制作,完成数据收集。 在实际业务中,往往需要将收集的数据进行展示或分析;此时就可以使用表单数据推送到TReport中&#xf…

详细解读性能测试指标(性能指标、CPU、内存、负载、磁盘)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 性能测试指标是衡量系统性能的评价标准,常用的系统性…

remmina无法连接远程桌面,Remmina无法连接远程桌面的原因与解决办法

在解决Remmina无法连接远程桌面的问题时,我们需要考虑多种可能的原因,并采取相应的解决办法。以下是一些常见的原因及其对应的解决方案: 1、网络问题 原因:不稳定的网络连接或中断可能导致无法建立远程桌面连接。 解决办法&#x…

环保设备统一管理系统

在环保意识日益增强的今天,企业如何有效管理环保设备,确保其正常运行,减少环境污染,成为了一个重要议题。HiWoo Cloud平台以其独特的环保设备统一管理系统,为企业提供了一套完整的解决方案,帮助企业实现绿色…

量化地形处理

1: 量化地形切片:GDAL查询数据;CTB算法转mesh;高度图需要和周围高度图边界做高度融合,四顶点需要做平均值融合;法线想要在前端显示正确必须将mesh坐标转为4326或者3857; 这个使用开源即可:cesi…

肖特基二极管 SOD-123HE封装 散热性好

肖特基二极管发热问题,一直是众多电子工程师常讨论的话题之一。在实际应用中,肖特基二极管发热量真地不容忽视,其发热量大小和实际工作电流和压降大小有关。针对肖特基二极管发热问题,二三极管厂家东沃电子DOWOSEMI有几点建议&…

怎么编辑百度百科个人词条

辑百度百科个人词条是一个相对复杂的过程,需要遵循一定的步骤和规则。以下是百科优化网整理的编辑百度百科个人词条的步骤和注意事项。 1. 确定编辑资格 百度百科个人词条的编辑权主要赋予那些具有一定影响力的公众人物,或者是有一定“身份”的人物&…

STM32 GPIO介绍

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL, GPIOx_CRH),两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 通过软件配置寄…

idea修改maven项目名称及子模块名称

一、修改目录名称 shift F6修改目录,选择“rename module and dictionary”。![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/43efd9c6af6e43ad9656455db94b37a2.png)二、修改子项目pom的 三、修改父项目pom的 四、刷新maven项目

SpringBoot:SpringBoot:实战项目TILAS智能学习辅助系统1.3

登录认证 需求:输入登录请求服务器判断用户的用户名和密码 //控制层 PostMapping("/login")public Result login(RequestBody Emp emp);Overridepublic Result login(Emp emp) {Emp emp1 empService.selectLogin(emp);if(emp1 null){System.out.println("用…

企业百度百科词条怎么修改

在进行企业百度百科词条的修改前,首先需要做好以下准备: 注册并登录百度账号:只有注册并登录了百度账号,你才能进行词条的编辑和修改。 熟悉百度百科编辑规则:了解百度百科的编辑规则,包括内容要求、格式规…

思通数科大模型在智能数据查询系统中的深度应用:销售数据分析的革新

在企业决策支持系统中,销售数据分析占据着举足轻重的地位。思通数科的大模型技术,结合自然语言处理(NLP)和机器学习,为智能数据查询系统提供了强大的分析能力。本文将详细描述思通数科大模型在销售数据分析中的应用&am…

2020 年国考【计算机专业】真题及答案

真题及答案 第一部分数学基础课程 一、(共 5 分)用逻辑符号表达下列语句(论域为包含一切事物的合集) (2 分)确诊者并不都有症状(注:需给出两种形式表达, 一种用存在量词, 一种用全称…