java数学类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)
:返回a
的b
次幂。sin(double a)
:返回参数的正弦值。cos(double a)
:返回参数的余弦值。tan(double a)
:返回参数的正切值。
2. BigInteger类
BigInteger
类表示任意精度的整数。在处理大整数时,int
和long
的范围可能不够用,此时可以使用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
类表示任意精度的小数。在处理需要高精度计算的小数时,float
和double
的范围和精度可能不够用,此时可以使用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. 示例
下面是一个使用Math
、BigInteger
和BigDecimal
类的示例:
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" } }
通过这个示例,您可以了解到Math
、BigInteger
和BigDecimal
的基本用法和常用方法。在实际编程过程中,您会经常使用这些类来处理数学计算。希望这个介绍能帮助您更好地学习和理解Java中的数学类。
以上就是java数学类(Math、BigInteger、BigDecimal)的详细内容,更多关于java 数学类的资料请关注脚本之家其它相关文章!
- Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法示例
- JAVA基本类型包装类 BigDecimal BigInteger 的使用
- Java你不了解的大数型BigInteger与BigDecimal类
- Java Big Number操作BigInteger及BigDecimal类详解
- JAVA biginteger类bigdecimal类的使用示例学习
- Java中BigInteger与BigDecimal类用法总结
- Java中的System类、BigInteger类和BigDecimal类详解
- JavaAPI中BigInteger、BigDecimal的使用方法及应用
相关文章
浅谈Java中Collection和Collections的区别
下面小编就为大家带来一篇浅谈Java中Collection和Collections的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-08-08spring framework体系结构及模块jar依赖关系详解
在本篇文章里小编给大家整理的是关于spring framework体系结构及模块jar依赖关系,对此有兴趣的朋友们可以学习下。2019-09-09Spring框架基于注解的AOP之各种通知的使用与环绕通知实现详解
这篇文章主要介绍了Spring框架基于注解的AOP之各种通知的使用及其环绕通知,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-11-11Java中ConcurrentHashMap是如何实现线程安全
ConcurrentHashMap是一个哈希表,支持检索的全并发和更新的高预期并发。本文主要介绍了Java中ConcurrentHashMap是如何实现线程安全,感兴趣的可以了解一下2021-11-11Springboot上传excel并将表格数据导入或更新mySql数据库的过程
这篇文章主要介绍了Springboot上传excel并将表格数据导入或更新mySql数据库的过程 ,本文以Controller开始,从导入过程开始讲述,其中包括字典表的转换,需要的朋友可以参考下2018-04-04SpringBoot获取HttpServletRequest的3种方式总结
这篇文章主要给大家介绍了关于SpringBoot获取HttpServletRequest的3种方式,在Spring boot项目中经常要用到Servlet的常用对象如HttpServletRequest request,HttpServletResponse response,HttpSession session,需要的朋友可以参考下2023-08-08
最新评论