java數(shù)學(xué)類Math?BigInteger?BigDecimal使用介紹
1. Math類
Math類提供了一些基本的數(shù)學(xué)函數(shù),如求平方根、絕對(duì)值、三角函數(shù)等。它是一個(gè)final類,并且所有的方法都是static的,因此無需創(chuàng)建對(duì)象,直接使用類名調(diào)用方法即可。
以下是Math類的一些常用方法:
abs(double a):返回參數(shù)的絕對(duì)值。ceil(double a):返回大于或等于參數(shù)的最小整數(shù)值。floor(double a):返回小于或等于參數(shù)的最大整數(shù)值。round(double a):返回參數(shù)四舍五入后的整數(shù)值。max(double a, double b):返回兩個(gè)參數(shù)中的最大值。min(double a, double b):返回兩個(gè)參數(shù)中的最小值。sqrt(double a):返回參數(shù)的平方根。pow(double a, double b):返回a的b次冪。sin(double a):返回參數(shù)的正弦值。cos(double a):返回參數(shù)的余弦值。tan(double a):返回參數(shù)的正切值。
2. BigInteger類
BigInteger類表示任意精度的整數(shù)。在處理大整數(shù)時(shí),int和long的范圍可能不夠用,此時(shí)可以使用BigInteger類。BigInteger類提供了大量的方法來操作大整數(shù),如加法、減法、乘法、除法等。
以下是創(chuàng)建BigInteger對(duì)象的一些方法:
BigInteger(String val):根據(jù)字符串創(chuàng)建BigInteger對(duì)象。valueOf(long val):返回一個(gè)等于指定long值的BigInteger對(duì)象。
以下是BigInteger類的一些常用方法:
add(BigInteger val):返回兩個(gè)BigInteger對(duì)象的和。subtract(BigInteger val):返回兩個(gè)BigInteger對(duì)象的差。multiply(BigInteger val):返回兩個(gè)BigInteger對(duì)象的積。divide(BigInteger val):返回兩個(gè)BigInteger對(duì)象的商。mod(BigInteger val):返回兩個(gè)BigInteger對(duì)象的余數(shù)。pow(int exponent):返回當(dāng)前BigInteger對(duì)象的指定次冪。
3. BigDecimal類
BigDecimal類表示任意精度的小數(shù)。在處理需要高精度計(jì)算的小數(shù)時(shí),float和double的范圍和精度可能不夠用,此時(shí)可以使用BigDecimal類。BigDecimal類提供了大量的方法來操作小數(shù),如加法、減法、乘法、除法等。
以下是創(chuàng)建BigDecimal對(duì)象的一些方法:
BigDecimal(String val):根據(jù)字符串創(chuàng)建BigDecimal對(duì)象。valueOf(double val):返回一個(gè)等于指定double值的BigDecimal對(duì)象。
以下是BigDecimal類的一些常用方法:
add(BigDecimal val):返回兩個(gè)BigDecimal對(duì)象的和。subtract(BigDecimal val):返回兩個(gè)BigDecimal對(duì)象的差。multiply(BigDecimal val):返回兩個(gè)BigDecimal對(duì)象的積。divide(BigDecimal val, int scale, RoundingMode roundingMode):返回兩個(gè)BigDecimal對(duì)象的商,保留指定小數(shù)位數(shù),并使用指定的舍入模式。setScale(int newScale, RoundingMode roundingMode):返回一個(gè)BigDecimal對(duì)象,保留指定小數(shù)位數(shù),并使用指定的舍入模式。
4. 示例
下面是一個(gè)使用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("絕對(duì)值:" + Math.abs(-10)); // 輸出 "絕對(duì)值: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("大整數(shù)相加:" + num1.add(num2)); // 輸出 "大整數(shù)相加:1111111110111111110"
System.out.println("大整數(shù)相減:" + num1.subtract(num2)); // 輸出 "大整數(shù)相減:864197532086419754"
System.out.println("大整數(shù)相乘:" + num1.multiply(num2)); // 輸出 "大整數(shù)相乘:121932631137021795435340303682"
// 使用BigDecimal類
BigDecimal decimal1 = new BigDecimal("123.456");
BigDecimal decimal2 = new BigDecimal("789.012");
System.out.println("高精度小數(shù)相加:" + decimal1.add(decimal2)); // 輸出 "高精度小數(shù)相加:912.468"
System.out.println("高精度小數(shù)相減:" + decimal1.subtract(decimal2)); // 輸出 "高精度小數(shù)相減:-665.556"
// 高精度小數(shù)相乘
BigDecimal decimal3 = decimal1.multiply(decimal2);
System.out.println("高精度小數(shù)相乘:" + decimal3); // 輸出 "高精度小數(shù)相乘:97421.697632"
// 高精度小數(shù)相除
BigDecimal decimal4 = decimal1.divide(decimal2, 5, RoundingMode.HALF_UP);
System.out.println("高精度小數(shù)相除:" + decimal4); // 輸出 "高精度小數(shù)相除:0.15649"
// 設(shè)置小數(shù)位數(shù)和舍入模式
BigDecimal decimal5 = decimal3.setScale(2, RoundingMode.HALF_UP);
System.out.println("高精度小數(shù)保留2位小數(shù):" + decimal5); // 輸出 "高精度小數(shù)保留2位小數(shù):97421.70"
}
}通過這個(gè)示例,您可以了解到Math、BigInteger和BigDecimal的基本用法和常用方法。在實(shí)際編程過程中,您會(huì)經(jīng)常使用這些類來處理數(shù)學(xué)計(jì)算。希望這個(gè)介紹能幫助您更好地學(xué)習(xí)和理解Java中的數(shù)學(xué)類。
以上就是java數(shù)學(xué)類(Math、BigInteger、BigDecimal)的詳細(xì)內(nèi)容,更多關(guān)于java 數(shù)學(xué)類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Java BigInteger類,BigDecimal類,Date類,DateFormat類及Calendar類用法示例
- JAVA基本類型包裝類 BigDecimal BigInteger 的使用
- Java你不了解的大數(shù)型BigInteger與BigDecimal類
- Java Big Number操作BigInteger及BigDecimal類詳解
- JAVA?biginteger類bigdecimal類的使用示例學(xué)習(xí)
- Java中BigInteger與BigDecimal類用法總結(jié)
- Java中的System類、BigInteger類和BigDecimal類詳解
- JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用
相關(guān)文章
使用Spring的FactoryBean創(chuàng)建和獲取Bean對(duì)象方式
這篇文章主要介紹了使用Spring的FactoryBean創(chuàng)建和獲取Bean對(duì)象方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Mybatis給數(shù)據(jù)庫(kù)敏感字段加解密詳解
這篇文章主要介紹了Mybatis給數(shù)據(jù)庫(kù)敏感字段加解密詳解,為了保護(hù)數(shù)據(jù)庫(kù)敏感字段數(shù)據(jù)安全,有時(shí)候我們需要將敏感數(shù)據(jù)加密入庫(kù),查詢時(shí)再解密成明文,我們可以利用Mybatis自定義TypeHandler來處理,需要的朋友可以參考下2023-11-11
SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因
spring-boot-maven-plugin是spring boot提供的maven打包插件,本文主要介紹了SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Java動(dòng)態(tài)驗(yàn)證碼單線設(shè)計(jì)的兩種方法
這篇文章主要介紹了Java動(dòng)態(tài)驗(yàn)證碼單線設(shè)計(jì)的兩種方法,需要的朋友可以參考下2018-07-07
Java ArrayList與LinkedList及HashMap容器的用法區(qū)別
這篇文章主要介紹了Java ArrayList與LinkedList及HashMap容器的用法區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-07-07
java實(shí)現(xiàn)數(shù)據(jù)庫(kù)主鍵生成示例
這篇文章主要介紹了java實(shí)現(xiàn)數(shù)據(jù)庫(kù)主鍵生成示例,需要的朋友可以參考下2014-03-03
使用Spring特性實(shí)現(xiàn)接口多實(shí)現(xiàn)類的動(dòng)態(tài)調(diào)用方式
這篇文章主要介紹了使用Spring特性實(shí)現(xiàn)接口多實(shí)現(xiàn)類的動(dòng)態(tài)調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

