3.2. 数学类(Math、BigInteger、BigDecimal)

这篇具有很好参考价值的文章主要介绍了3.2. 数学类(Math、BigInteger、BigDecimal)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Math类

Math类提供了一些基本的数学函数,如求平方根、绝对值、三角函数等。它是一个final类,并且所有的方法都是static的,因此无需创建对象,直接使用类名调用方法即可。

以下是Math类的一些常用方法:

  • abs(double a):返回参数的绝对值。
  • ceil(double a):返回大于或等于参数的最小整数值。
  • floor(double a):返回小于或等于参数的最大整数值。
  • round(double a):返回参数四舍五入后的整数值。
  • max(double a, double b):返回两个参数中的最大值。
  • min(double a, double b):返回两个参数中的最小值。
  • sqrt(double a):返回参数的平方根。
  • pow(double a, double b):返回ab次幂。
  • sin(double a):返回参数的正弦值。
  • cos(double a):返回参数的余弦值。
  • tan(double a):返回参数的正切值。

2. BigInteger类

BigInteger类表示任意精度的整数。在处理大整数时,intlong的范围可能不够用,此时可以使用BigInteger类。BigInteger类提供了大量的方法来操作大整数,如加法、减法、乘法、除法等。

以下是创建BigInteger对象的一些方法:

  • BigInteger(String val):根据字符串创建BigInteger对象。
  • valueOf(long val):返回一个等于指定long值的BigInteger对象。

以下是BigInteger类的一些常用方法:

  • add(BigInteger val):返回两个BigInteger对象的和。
  • subtract(BigInteger val):返回两个BigInteger对象的差。
  • multiply(BigInteger val):返回两个BigInteger对象的积。
  • divide(BigInteger val):返回两个BigInteger对象的商。
  • mod(BigInteger val):返回两个BigInteger对象的余数。
  • pow(int exponent):返回当前BigInteger对象的指定次幂。

3. BigDecimal类

BigDecimal类表示任意精度的小数。在处理需要高精度计算的小数时,floatdouble的范围和精度可能不够用,此时可以使用BigDecimal类。BigDecimal类提供了大量的方法来操作小数,如加法、减法、乘法、除法等。

以下是创建BigDecimal对象的一些方法:

  • BigDecimal(String val):根据字符串创建BigDecimal对象。
  • valueOf(double val):返回一个等于指定double值的BigDecimal对象。

以下是BigDecimal类的一些常用方法:

  • add(BigDecimal val):返回两个BigDecimal对象的和。
  • subtract(BigDecimal val):返回两个BigDecimal对象的差。
  • multiply(BigDecimal val):返回两个BigDecimal对象的积。
  • divide(BigDecimal val, int scale, RoundingMode roundingMode):返回两个BigDecimal对象的商,保留指定小数位数,并使用指定的舍入模式。
  • setScale(int newScale, RoundingMode roundingMode):返回一个BigDecimal对象,保留指定小数位数,并使用指定的舍入模式。

4. 示例

下面是一个使用MathBigIntegerBigDecimal类的示例:

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;

public class Main {
    public static void main(String[] args) {
        // 使用Math类
        System.out.println("绝对值:" + Math.abs(-10)); // 输出 "绝对值:10"
        System.out.println("平方根:" + Math.sqrt(9)); // 输出 "平方根:3.0"
        System.out.println("最大值:" + Math.max(3, 7)); // 输出 "最大值:7"

        // 使用BigInteger类
        BigInteger num1 = new BigInteger("987654321098765432");
        BigInteger num2 = new BigInteger("123456789012345678");
        System.out.println("大整数相加:" + num1.add(num2)); // 输出 "大整数相加:1111111110111111110"
        System.out.println("大整数相减:" + num1.subtract(num2)); // 输出 "大整数相减:864197532086419754"
        System.out.println("大整数相乘:" + num1.multiply(num2)); // 输出 "大整数相乘:121932631137021795435340303682"

        // 使用BigDecimal类
        BigDecimal decimal1 = new BigDecimal("123.456");
        BigDecimal decimal2 = new BigDecimal("789.012");
        System.out.println("高精度小数相加:" + decimal1.add(decimal2)); // 输出 "高精度小数相加:912.468"
        System.out.println("高精度小数相减:" + decimal1.subtract(decimal2)); // 输出 "高精度小数相减:-665.556"

        // 高精度小数相乘
        BigDecimal decimal3 = decimal1.multiply(decimal2);
        System.out.println("高精度小数相乘:" + decimal3); // 输出 "高精度小数相乘:97421.697632"

        // 高精度小数相除
        BigDecimal decimal4 = decimal1.divide(decimal2, 5, RoundingMode.HALF_UP);
        System.out.println("高精度小数相除:" + decimal4); // 输出 "高精度小数相除:0.15649"

        // 设置小数位数和舍入模式
        BigDecimal decimal5 = decimal3.setScale(2, RoundingMode.HALF_UP);
        System.out.println("高精度小数保留2位小数:" + decimal5); // 输出 "高精度小数保留2位小数:97421.70"
    }
}

通过这个示例,您可以了解到MathBigIntegerBigDecimal的基本用法和常用方法。在实际编程过程中,您会经常使用这些类来处理数学计算。希望这个介绍能帮助您更好地学习和理解Java中的数学类。

3.2. 数学类(Math、BigInteger、BigDecimal)

推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g文章来源地址https://www.toymoban.com/news/detail-464644.html

到了这里,关于3.2. 数学类(Math、BigInteger、BigDecimal)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 已解决java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long异常的正确解决方法,亲测有效

    已解决java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long异常的正确解决方法,亲测有效!!! java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long 这个错误是由于将java.math.BigInteger类型的对象强制转换为java.lang.Long类型引起的。 下滑查看解决方法 由

    2024年02月09日
    浏览(42)
  • java.math.BigDecimal cannot be cast to java.lang.String 报错

    “java.math.BigDecimal cannot be cast to java.lang.String”错误信息表示您正在尝试将BigDecimal对象转换为String。但是,BigDecimal和String是两个不同的类型,它们不能直接相互转换。 BigDecimal是Java“math”包中的一个类,用于进行精确的小数运算。它可以处理任意位数的小数,包括小数部分。

    2024年02月10日
    浏览(47)
  • 第十三章 常用类(Math 类、Arrays 类、System类、Biglnteger 和BigDecimal 类、日期类)

    Math 类包含,用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 (1)abs:绝对值 (2)pow:求幂 (3)ceil:向上取整【返回 = 该参数的最小整数】 (4)floor:向下取整【返回 = 该参数的最大整数】 (5)round:四舍五入 (6)sqrt:求开方 (7)random:求随

    2024年02月06日
    浏览(32)
  • java导入数学(Math)包

    求绝对值 求一个数的开放 学的不是技术,更是梦想!!!

    2024年02月07日
    浏览(39)
  • Java 数学计算(一):BigDecimal 详解 + 代码示例

    ❤️ 个人主页:水滴技术 🌸 订阅专栏:Java 教程:从入门到精通 🚀 支持水滴: 点赞 👍 + 收藏 ⭐ + 留言 💬 大家好,我是水滴~~ 本文主要对 BigDecimal 类进行详细介绍,主要内容有:构造器、静态方法、静态常量、常用方法、舍入模式,并提供了大量的代码示例,可以将该

    2023年04月08日
    浏览(42)
  • Python 数学函数和 math 模块指南

    Python 提供了一组内置的数学函数,包括一个广泛的数学模块,可以让您对数字执行数学任务。 内置数学函数。min() 和 max() 函数可用于在可迭代对象中查找最低或最高值: 示例 :查找可迭代对象中的最低或最高值: abs() 函数返回指定数字的绝对值(正数): 示例 :返回

    2024年02月07日
    浏览(43)
  • JS中 Math 和 Number 内置对象常用的一些方法

    参数:num,一个需要求绝对值的数。 参数:num,需要进行上舍入的数值。 注意事项:对于负数进行上舍入时会出现一定的差错。 参数:num,需要进行下舍入的数值。 参数:num1, num2, …, numN,需要比较的数值,可以是任意个数的参数。 注意事项:如果传入的参数为空,返回

    2024年02月05日
    浏览(44)
  • 【工具笔记】Microsoft数学求解器Math Solver

    工具笔记用于记录各种有用的工具,这里记录的是一个由Microsoft提供的数学求解器Math Solver。 可以用于求解代数,三角学,微积分,矩阵等各种数学问题,并且可以获取分步解释,查看如何解决问题并获取数学概念的定义,立即画出任何公式以可视化函数并了解变量之间的关

    2024年02月05日
    浏览(31)
  • .net 平台下的数学库math.net(一)

    Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。这个项目大部分采用的是MIT/X11开源软件协议。目前该组件主要分为以下几个子项目,该组件同时

    2023年04月08日
    浏览(32)
  • BigDecimal 基本使用和常用方法

    背景      涉及到比较大的数字之间的计算,使用float、double这样的浮点数就不那么准确了。因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。所以在 商业计算中基本 要用java.math.BigDecimal 结果输出:    1.2、BigDecimal还提供默认值创建

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包