Java中BigDecimal類的add()的使用詳解
Java中的BigDecimal類的使用:
使用Java中的BigDecimal可以進(jìn)行精確的計(jì)算,但是在使用BigDecimal時(shí)我們需要注意它的add()方法,使用它自身的add( )方法并不會(huì)改變它原始的值,因?yàn)槌跏蓟疊igDecimal是創(chuàng)建一個(gè)了個(gè)對(duì)象,使用add()方法時(shí)也等于是創(chuàng)建了一個(gè)對(duì)象,若要保存這個(gè)對(duì)象需要再創(chuàng)建一個(gè)對(duì)象。
句法:
public BigDecimal add(BigDecimal val); public BigDecimal add(BigDecimal val, MathContext ma_co);
add() method is available in java.math package.
add()方法在java.math包中可用。
add(BigDecimal val) method is used to get a BigDecimal that holds the value added this BigDecimal with the given BigDecimal and its scale is calculated by using max([this BigDecimal.scale()] , [BigDecimal val.scale()]).
add(BigDecimal val)方法用于獲取一個(gè)BigDecimal,該BigDecimal保留使用給定BigDecimal與該BigDecimal相加的值,并使用max([thisBigDecimal.scale()],[BigDecimal val.scale()])計(jì)算其小數(shù)位數(shù)。
add(BigDecimal val, MathContext ma_co) method is used to get a BigDecimal that holds the value-added this BigDecimal with the given BigDecimal based on the given MathContext settings.
add(BigDecimal val,MathContext ma_co)方法用于獲取BigDecimal,該BigDecimal包含基于給定MathContext設(shè)置的給定BigDecimal與該BigDecimal的增值。
These methods may throw an exception at the time of adding an object.
這些方法在添加對(duì)象時(shí)可能會(huì)引發(fā)異常。
ArithmeticException: This exception may throw when the result is not accurate and set the rounding mode "UNNECESSARY".
ArithmeticException :當(dāng)結(jié)果不正確并且將舍入模式設(shè)置為“ UNNECESSARY”時(shí),可能會(huì)引發(fā)此異常。
These are non-static methods and it is accessible with class objects and if we try to access these methods with the class name then we will get an error.
這些是非靜態(tài)方法,可通過類對(duì)象訪問,如果嘗試使用類名訪問這些方法,則會(huì)收到錯(cuò)誤消息。
使用BigDecimal的計(jì)算的錯(cuò)誤示例:
public static void main(String[]args){ double num1=19; double num2=20; //創(chuàng)建BigDecimal對(duì)象 BigDecimal bd1=new BigDecimal(Double.toString(num1)); BigDecimal bd1=new BigDecimal(Double.toString(num2)); //以add方法進(jìn)行加運(yùn)算 bd1.add(num2).doubleValue(); //輸出結(jié)果 System.out.printlin(bd1);//輸出19 }
使用BigDecimal的計(jì)算的正確示例:
public static void main(String[]args){ double num1=19; double num2=20; //創(chuàng)建BigDecimal對(duì)象 BigDecimal bd1=new BigDecimal(Double.toString(num1)); BigDecimal bd1=new BigDecimal(Double.toString(num2)); //以add方法進(jìn)行加運(yùn)算 bd1=bd1.add(num2).doubleValue(); //輸出結(jié)果 System.out.printlin(bd1);//輸出39 }
綜上所述,當(dāng)我們使用BigDecimal來計(jì)算時(shí)需要將它計(jì)算出的結(jié)果進(jìn)行保存,若不進(jìn)行操作,則原始值還是不變的。
到此這篇關(guān)于Java中BigDecimal類的add()的使用詳解的文章就介紹到這了,更多相關(guān)Java BigDecimal add()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Java中的DelayQueue實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景詳解
這篇文章主要介紹了Java中的DelayQueue實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景詳解,DelayQueue是一個(gè)沒有邊界BlockingQueue實(shí)現(xiàn),加入其中的元素必需實(shí)現(xiàn)Delayed接口,當(dāng)生產(chǎn)者線程調(diào)用put之類的方法加入元素時(shí),會(huì)觸發(fā)Delayed接口中的compareTo方法進(jìn)行排序,需要的朋友可以參考下2023-12-12SpringBoot 二維碼生成base64并上傳OSS的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot 二維碼生成base64并上傳OSS的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05講解Java設(shè)計(jì)模式編程中的建造者模式與原型模式
這篇文章主要介紹了Java設(shè)計(jì)模式編程中的建造者模式與原型模式,設(shè)計(jì)模式有利于團(tuán)隊(duì)開發(fā)過程中的代碼維護(hù),需要的朋友可以參考下2016-02-02最新log4j2遠(yuǎn)程代碼執(zhí)行漏洞(附解決方法)
Apache?Log4j2?遠(yuǎn)程代碼執(zhí)行漏洞攻擊代碼,該漏洞利用無需特殊配置,經(jīng)多方驗(yàn)證,Apache?Struts2、Apache?Solr、Apache?Druid、Apache?Flink等均受影響,本文就介紹一下解決方法2021-12-12