Java中的Bigdecimal類型運算
雙精度浮點型變量double可以處理16位有效數。在實際應用中,需要對更大或者更小的數進行運算和處理。Java在java.math包中提 供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。表5.7中列出了BigDecimal類的主要構造器和方法。
構造器 描 述
BigDecimal(int)創建一個具有參數所指定整數值的對象。
BigDecimal(double)創建一個具有參數所指定雙精度值的對象。
BigDecimal(long)創建一個具有參數所指定長整數值的對象。
BigDecimal(String)創建一個具有參數所指定以字符串表示的數值的對象。
方 法描 述
add(BigDecimal)BigDecimal對象中的值相加,然後返回這個對象。
subtract(BigDecimal)BigDecimal對象中的值相減,然後返回這個對象。
multiply(BigDecimal)BigDecimal對象中的值相乘,然後返回這個對象。
divide(BigDecimal)BigDecimal對象中的值相除,然後返回這個對象。
toString()將BigDecimal對象的數值轉換成字符串。
doubleValue()將BigDecimal對象中的值以雙精度數返回。
floatValue()將BigDecimal對象中的值以單精度數返回。
longValue()將BigDecimal對象中的值以長整數返回。
intValue()將BigDecimal對象中的值以整數返回。
注意,由於一般數值類型,例如double,不能准確地代表16位有效數以上的數字,在使用BigDecimal時,應用 BigDecimal(String)構造器創建對象才有意義。另外,BigDecimal所創建的是對象,我們不能使用傳統的+、-、*、/等算術運算 符直接對其對象進行數學運算,而必須調用其相對應的方法。方法中的參數也必須是BigDecimal的對象。
eg:
兩個BigDecimal 類型的數據相乘:
BigDecimal a = new BigDecimal(15124);
BigDecimal b = new BigDecimal(15124);
BigDecimal c = a.multiply(b);