java中BigDecimal進行加減乘除的基本用法
前言
眾所周知Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算。雙精度浮點型變量double可以處理16位有效數(shù)。在實際應(yīng)用中,需要對更大或者更小的數(shù)進行運算和處理。float和double只能用來做科學(xué)計算或者是工程計算,在商業(yè)計算中要用java.math.BigDecimal。
BigDecimal所創(chuàng)建的是對象,我們不能使用傳統(tǒng)的+、-、*、/等算術(shù)運算符直接對其對象進行數(shù)學(xué)運算,而必須調(diào)用其相對應(yīng)的方法。
方法中的參數(shù)也必須是BigDecimal的對象。構(gòu)造器是類的特殊方法,專門用來創(chuàng)建對象,特別是帶有參數(shù)的對象。
示例代碼如下
import java.math.BigDecimal;
public class T {
public static void main(String[] args) {
String a = "9999.9999";
int b = 9999;
double c = 9999.9999;
char d = 99;
System.out.println("===================");
// 不同類型轉(zhuǎn)為BigDecimal
BigDecimal ma = new BigDecimal(a);
BigDecimal mb = new BigDecimal(b);
BigDecimal mc = new BigDecimal(c);
BigDecimal md = new BigDecimal(d);
System.out.println("ma:"+ma.toString());
System.out.println("mb:"+mb.toString());
System.out.println("mc:"+mc.toString());
System.out.println("md:"+md.toString());
System.out.println("===================");
// 加
BigDecimal add = ma.add(mb);
System.out.println("加法:"+add);
// 減
BigDecimal sub = ma.subtract(mb);
System.out.println("減法:"+sub);
// 乘
BigDecimal mul = mb.multiply(md);
System.out.println("乘法:"+mul);
// 除
BigDecimal div = mb.divide(md);
System.out.println("除法:"+div);
System.out.println("===================");
mc = mc.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("四舍五入:"+mc);
System.out.println("===================");
mc = mc.negate();
System.out.println("負數(shù):"+mc);
System.out.println("===================");
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Java使用StampedLock實現(xiàn)高效讀寫功能
StampedLock 是 Java 8 引入的高性能鎖,提供了三種鎖模式:寫鎖、悲觀讀鎖和樂觀讀鎖,與傳統(tǒng)的 ReentrantReadWriteLock 相比,StampedLock 更注重性能,特別適合讀多寫少的場景,所以本文給大家介紹了Java使用StampedLock實現(xiàn)高效讀寫功能,需要的朋友可以參考下2025-01-01
SpringBoot整合websocket實現(xiàn)即時通信聊天
這篇文章主要介紹了SpringBoot整合websocket實現(xiàn)即時通信聊天,實時通信是一個實時通信系統(tǒng),允許兩人或多人使用網(wǎng)絡(luò)實時的傳遞文字消息、文件、語音與視頻交流,需要的朋友可以參考下2022-05-05
Java Swing JToggleButton開關(guān)按鈕的實現(xiàn)
這篇文章主要介紹了Java Swing JToggleButton開關(guān)按鈕的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
SpringBoot整合Java DL4J實現(xiàn)文本分類系統(tǒng)
在當(dāng)今信息爆炸的時代,自然語言處理領(lǐng)域中的文本分類顯得尤為重要,文本分類能夠高效地組織和管理海量的文本數(shù)據(jù),隨著互聯(lián)網(wǎng)的飛速發(fā)展,我們每天都被大量的文本信息所包圍,本文將介紹如何使用 Spring Boot 整合 Java Deeplearning4j 來構(gòu)建一個文本分類系統(tǒng)2024-10-10
Java中synchronized?的4個優(yōu)化技巧
本文主要介紹了Java中synchronized的4個優(yōu)化技巧,synchronized在JDK?1.5?時性能是比較低的,然而在后續(xù)的版本中經(jīng)過各種優(yōu)化迭代,它的性能也得到了前所未有的提升,下文更多相關(guān)資料需要的小伙伴可以參考一下2022-05-05
關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式
這篇文章主要介紹了關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式,當(dāng)隊列滿時,生產(chǎn)者需要等待隊列有空間才能繼續(xù)往里面放入商品,而在等待的期間內(nèi),生產(chǎn)者必須釋放對臨界資源的占用權(quán),這是消費者模式,需要的朋友可以參考下2023-07-07

