日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何應(yīng)用Java的BigDecimal類

BigDecimal類

成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊及專業(yè)的網(wǎng)站設(shè)計師團(tuán)隊。

雙精度浮點(diǎn)型變量double可以處理16位有效數(shù)。在實(shí)際應(yīng)用中,需要對更大或者更小的數(shù)進(jìn)行運(yùn)算和處理。Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算。表5.7中列出了BigDecimal類的主要構(gòu)造器和方法。

表5.7 BigDecimal類的主要構(gòu)造器和方法

構(gòu)造器  描 述

BigDecimal(int)創(chuàng)建一個具有參數(shù)所指定整數(shù)值的對象。

BigDecimal(double)創(chuàng)建一個具有參數(shù)所指定雙精度值的對象。

BigDecimal(long)創(chuàng)建一個具有參數(shù)所指定長整數(shù)值的對象。

BigDecimal(String)創(chuàng)建一個具有參數(shù)所指定以字符串表示的數(shù)值的對象。

續(xù)表

方 法描 述

add(BigDecimal)BigDecimal對象中的值相加,然后返回這個對象。

subtract(BigDecimal)BigDecimal對象中的值相減,然后返回這個對象。

multiply(BigDecimal)BigDecimal對象中的值相乘,然后返回這個對象。

divide(BigDecimal)BigDecimal對象中的值相除,然后返回這個對象。

toString()將BigDecimal對象的數(shù)值轉(zhuǎn)換成字符串。

doubleValue()將BigDecimal對象中的值以雙精度數(shù)返回。

floatValue()將BigDecimal對象中的值以單精度數(shù)返回。

longValue()將BigDecimal對象中的值以長整數(shù)返回。

intValue()將BigDecimal對象中的值以整數(shù)返回。

注意,由于一般數(shù)值類型,例如double,不能準(zhǔn)確地代表16位有效數(shù)以上的數(shù)字,在使用BigDecimal時,應(yīng)用BigDecimal(String)構(gòu)造器創(chuàng)建對象才有意義。另外,BigDecimal所創(chuàng)建的是對象,我們不能使用傳統(tǒng)的+、-、*、/等算術(shù)運(yùn)算符直接對其對象進(jìn)行數(shù)學(xué)運(yùn)算,而必須調(diào)用其相對應(yīng)的方法。方法中的參數(shù)也必須是BigDecimal的對象。

構(gòu)造器是類的特殊方法,專門用來創(chuàng)建對象,特別是帶有參數(shù)的對象。關(guān)于構(gòu)造器概念和編寫技術(shù),將在本書第6章詳細(xì)介紹。

下面討論BigDecimal類的一些常用例子:

 
 
 
  1. //完整程序例子在本書配套資源目錄Ch5中名為BigDecimalTestApp.java   
  2. //創(chuàng)建BigDecimal對象   
  3. BigDecimal bigNumber = new BigDecimal("89.1234567890123456789");   
  4. BigDecimal bigRate = new BigDecimal(1000);   
  5. BigDecimal bigResult = new BigDecimal(); //對象bigResult的值為0.0   
  6. //對bigNumber的值乘以1000,結(jié)果 賦予bigResult   
  7. bigResult = bigNumber.multiply(bigRate);   
  8. System.out.println(bigResult.toString());   
  9. //或者System.out.println(bigResult);   
  10. //顯示結(jié)果:89123.4567890123456789000   
  11. //以雙精度數(shù)返回bigNumber中的值   
  12. double dData = bigNumber.doubleValue();   
  13. System.out.println(dData); //結(jié)果:89.12345678901235  

注意使用方法doubleValue()將對象bigNumber中的值以雙精度數(shù)值返回時,將丟失數(shù)據(jù)的準(zhǔn)確性。使用其他方法,如xxxValue()時均存在這個問題,使用時必須慎重。

3W BigDecimal用來對超過16有效位以上的數(shù)值進(jìn)行運(yùn)算和操作。所有的算術(shù)運(yùn)算都通過調(diào)用其相應(yīng)的方法進(jìn)行。 創(chuàng)建一個超過16有效位數(shù)的對象時,運(yùn)用BigDecimal(String)才可避免丟失數(shù)字的精確度。

BigDecimal和格式化

由于NumberFormat類的format()方法可以使用BigDecimal對象作為其參數(shù),可以利用BigDecimal對超出16位有效數(shù)字的貨幣值,百分值,以及一般數(shù)值進(jìn)行格式化控制。

以利用BigDecimal對貨幣和百分比格式化為例。首先,創(chuàng)建BigDecimal對象,進(jìn)行BigDecimal的算術(shù)運(yùn)算后,分別建立對貨幣和百分比格式化的引用,最后利用BigDecimal對象作為format()方法的參數(shù),輸出其格式化的貨幣值和百分比,即:

 
 
 
  1. //完整程序例子在本書配套資源目錄Ch5中名為BigDecimalFormatApp.java   
  2. BigDecimal bigLoanAmount = new BigDecimal(loanAmountString);   
  3. //創(chuàng)建BigDecimal對象   
  4. BigDecimal bigInterestRate = new BigDecimal(interestRateString);   
  5. BigDecimal bigInterest = bigLoanAmount.multiply(bigInterestRate);   
  6. //BigDecimal運(yùn)算   
  7. NumberFormat currency = NumberFormat.getCurrencyInstance();   
  8. //建立貨幣格式化引用   
  9. NumberFormat percent = NumberFormat.getPercentInstance();   
  10. //建立百分比格式化引用   
  11. percent.setMaximumFractionDigits(3); //百分比小數(shù)點(diǎn)最多3位   
  12. //利用BigDecimal對象作為參數(shù)在format()中調(diào)用貨幣和百分比格式化   
  13. System.out.println("Loan amount:\t" + currency.format(bigLoanAmount));   
  14. System.out.println("Interest rate:\t" + percent.format(bigInterestRate));   
  15. System.out.println("Interest:\t" + currency.format(bigInterest));  

如下是這個程序運(yùn)行會的一個典型輸出結(jié)果:

Loan amount: ¥129,876,534,219,876,523.12

Interest rate: 8.765%

Interest: ¥11,384,239,549,149,661.69


分享標(biāo)題:如何應(yīng)用Java的BigDecimal類
新聞來源:http://m.5511xx.com/article/copdgpj.html