java數(shù)學類Math?BigInteger?BigDecimal使用介紹
1. Math類
Math類提供了一些基本的數(shù)學函數(shù),如求平方根、絕對值、三角函數(shù)等。它是一個final類,并且所有的方法都是static的,因此無需創(chuàng)建對象,直接使用類名調(diào)用方法即可。
以下是Math類的一些常用方法:
abs(double a):返回參數(shù)的絕對值。ceil(double a):返回大于或等于參數(shù)的最小整數(shù)值。floor(double a):返回小于或等于參數(shù)的最大整數(shù)值。round(double a):返回參數(shù)四舍五入后的整數(shù)值。max(double a, double b):返回兩個參數(shù)中的最大值。min(double a, double b):返回兩個參數(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ù)時,int和long的范圍可能不夠用,此時可以使用BigInteger類。BigInteger類提供了大量的方法來操作大整數(shù),如加法、減法、乘法、除法等。
以下是創(chuàng)建BigInteger對象的一些方法:
BigInteger(String val):根據(jù)字符串創(chuàng)建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對象的余數(shù)。pow(int exponent):返回當前BigInteger對象的指定次冪。
3. BigDecimal類
BigDecimal類表示任意精度的小數(shù)。在處理需要高精度計算的小數(shù)時,float和double的范圍和精度可能不夠用,此時可以使用BigDecimal類。BigDecimal類提供了大量的方法來操作小數(shù),如加法、減法、乘法、除法等。
以下是創(chuàng)建BigDecimal對象的一些方法:
BigDecimal(String val):根據(jù)字符串創(chuàng)建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對象的商,保留指定小數(shù)位數(shù),并使用指定的舍入模式。setScale(int newScale, RoundingMode roundingMode):返回一個BigDecimal對象,保留指定小數(shù)位數(shù),并使用指定的舍入模式。
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("大整數(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ù)和舍入模式
BigDecimal decimal5 = decimal3.setScale(2, RoundingMode.HALF_UP);
System.out.println("高精度小數(shù)保留2位小數(shù):" + decimal5); // 輸出 "高精度小數(shù)保留2位小數(shù):97421.70"
}
}通過這個示例,您可以了解到Math、BigInteger和BigDecimal的基本用法和常用方法。在實際編程過程中,您會經(jīng)常使用這些類來處理數(shù)學計算。希望這個介紹能幫助您更好地學習和理解Java中的數(shù)學類。
以上就是java數(shù)學類(Math、BigInteger、BigDecimal)的詳細內(nèi)容,更多關于java 數(shù)學類的資料請關注腳本之家其它相關文章!
- Java BigInteger類,BigDecimal類,Date類,DateFormat類及Calendar類用法示例
- JAVA基本類型包裝類 BigDecimal BigInteger 的使用
- Java你不了解的大數(shù)型BigInteger與BigDecimal類
- Java Big Number操作BigInteger及BigDecimal類詳解
- JAVA?biginteger類bigdecimal類的使用示例學習
- Java中BigInteger與BigDecimal類用法總結
- Java中的System類、BigInteger類和BigDecimal類詳解
- JavaAPI中BigInteger、BigDecimal的使用方法及應用
相關文章
maven-maven使用-P參數(shù)打包不同環(huán)境問題
這篇文章主要介紹了maven-maven使用-P參數(shù)打包不同環(huán)境問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Spring Security使用權限注解實現(xiàn)精確控制
在現(xiàn)代的應用系統(tǒng)中,權限管理是確保系統(tǒng)安全性的重要環(huán)節(jié),Spring Security作為Java世界最為普及的安全框架,提供了強大而靈活的權限控制功能,這篇文章將深入探討Spring Security使用權限注解實現(xiàn)精確控制,需要的朋友可以參考下2024-12-12
解決idea 通過build project 手動觸發(fā)熱部署失敗的問題
在debug運行項目的過程中,并且保證(不添加方法,不修改方法名)一定的規(guī)則的情況下,可以通過build project 來手動熱部署項目,本文給大家介紹解決idea 通過build project 手動觸發(fā)熱部署失敗的問題,感興趣的朋友一起看看吧2023-12-12
Spring?Boot?微服務中集成?MyBatis-Plus?與集成原生?MyBatis在配置上的不同
在Spring?Boot微服務中,MyBatis-Plus通過其Boot?Starter和豐富的配置屬性,極大的簡化了MyBatis的集成和配置工作,尤其是對于全局設置和常用插件的使用,本文給大家介紹Spring?Boot?微服務中集成?MyBatis-Plus與集成原生?MyBatis?有哪些配置上的不同,感興趣的朋友一起看看吧2025-04-04
Mybatis-Plus查詢出來的數(shù)據(jù)數(shù)量正確,但每條數(shù)據(jù)都為null問題及解決
MyBatis默認啟用駝峰映射,導致JavaBean屬性名與數(shù)據(jù)庫字段名不匹配,查詢結果全為null,需關閉駝峰映射以確保字段名正確對應,解決數(shù)據(jù)映射異常問題2025-09-09

