成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何應用Java的BigDecimal類

開發 后端
本文介紹Java的BigDecimal類的應用。Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。

BigDecimal類

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

表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的對象。

構造器是類的特殊方法,專門用來創建對象,特別是帶有參數的對象。關于構造器概念和編寫技術,將在本書第6章詳細介紹。

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

  1. //完整程序例子在本書配套資源目錄Ch5中名為BigDecimalTestApp.java   
  2. //創建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,結果 賦予bigResult   
  7. bigResult = bigNumber.multiply(bigRate);   
  8. System.out.println(bigResult.toString());   
  9. //或者System.out.println(bigResult);   
  10. //顯示結果:89123.4567890123456789000   
  11. //以雙精度數返回bigNumber中的值   
  12. double dData = bigNumber.doubleValue();   
  13. System.out.println(dData); //結果:89.12345678901235  

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

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

BigDecimal和格式化

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

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

  1. //完整程序例子在本書配套資源目錄Ch5中名為BigDecimalFormatApp.java   
  2. BigDecimal bigLoanAmount = new BigDecimal(loanAmountString);   
  3. //創建BigDecimal對象   
  4. BigDecimal bigInterestRate = new BigDecimal(interestRateString);   
  5. BigDecimal bigInterest = bigLoanAmount.multiply(bigInterestRate);   
  6. //BigDecimal運算   
  7. NumberFormat currency = NumberFormat.getCurrencyInstance();   
  8. //建立貨幣格式化引用   
  9. NumberFormat percent = NumberFormat.getPercentInstance();   
  10. //建立百分比格式化引用   
  11. percent.setMaximumFractionDigits(3); //百分比小數點最多3位   
  12. //利用BigDecimal對象作為參數在format()中調用貨幣和百分比格式化   
  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));  

如下是這個程序運行會的一個典型輸出結果:

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

Interest rate: 8.765%

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

【編輯推薦】

  1. Java會幸存 但Sun其余產品命運難料
  2. 如何理解JavaFX的應運而生
  3. 精選的25個Java試題分享
  4. Java 理論與實踐: 用弱引用堵住內存泄漏
責任編輯:彭凡 來源: IT專家網論壇
相關推薦

2020-03-02 14:55:02

JavaBigDecimalAPI

2011-11-23 13:04:19

Java高精度BigDecimal

2021-03-03 08:57:46

java死鎖線程

2009-06-29 15:23:00

2020-06-04 14:15:55

Java中BigDecimal函數

2009-08-04 17:08:12

C# Thread類

2010-06-28 18:21:36

UML類圖設計

2019-03-05 14:59:42

Java虛擬機加載類

2012-03-07 23:13:50

應用

2012-08-27 09:28:07

JavaPython

2019-12-09 15:08:30

JavaTomcatWeb

2021-08-30 09:56:59

Web安全攻擊Java

2020-12-30 08:01:07

Java隔離加載

2010-03-17 16:49:40

Java綠色線程

2017-12-19 10:03:44

JavaLinux代碼

2023-12-29 08:54:02

Optional個性化服務

2014-04-23 13:30:23

類簇iOS開發

2020-06-29 07:52:17

Java工具類開發

2009-12-04 17:06:47

PHP讀取Excel文
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色大片在线免费观看 | 欧美在线视频不卡 | av片在线观看网站 | 成人性视频免费网站 | 国产精品免费一区二区三区四区 | 久久久久久免费观看 | 国产亚洲精品久久yy50 | 黄a在线观看 | 欧美高清视频一区 | 亚洲高清免费观看 | 手机三级电影 | 中文字幕一区在线观看视频 | 成人在线精品视频 | 欧美在线日韩 | 羞羞视频在线免费 | 国产综合在线视频 | 99精品视频一区二区三区 | 免费v片在线观看 | 成人综合视频在线观看 | 91在线| 国产高清视频 | 亚洲欧美另类在线观看 | 在线中文字幕视频 | 国产成人精品一区二 | 青青草网站在线观看 | 精品久久久一区二区 | 99久久精品国产一区二区三区 | 久久天天躁狠狠躁夜夜躁2014 | 羞羞视频网站 | 欧美精品一区二区三区一线天视频 | 亚洲黄色av | 久久成人综合 | 免费一级做a爰片久久毛片潮喷 | 免费黄色在线 | 欧美a级成人淫片免费看 | 国产成人精品一区二区三区视频 | 国产女人与拘做视频免费 | 久久青青 | 人人种亚洲 | 欧美日韩国产在线观看 | 成人精品国产免费网站 |