歡迎您訪問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠(chéng)信通企業(yè)
全國(guó)咨詢熱線:40000-63966
興邦電子,中國(guó)水控機(jī)第一品牌

聯(lián)系興邦電子

全國(guó)咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

BigDecimal類的簡(jiǎn)單用法

文章出處:http://www.xianjuhong.com 作者:興邦開發(fā)部 人氣: 發(fā)表時(shí)間:2016年12月13日

[文章內(nèi)容簡(jiǎn)介]:BigDecimal類的簡(jiǎn)單用法

 

本文實(shí)例講述了Java中BigDecimal類的簡(jiǎn)單用法,是Java程序設(shè)計(jì)中非常實(shí)用的技巧,分享給大家供大家參考。具體用法分析如下:

一般來(lái)說(shuō),一提到Java里面的商業(yè)計(jì)算,我們都知道不能用float和double,因?yàn)樗麄儫o(wú)法進(jìn)行精確計(jì)算。但是Java的設(shè)計(jì)者給編程人員提供了一個(gè)很有用的類BigDecimal,他可以完善float和double類無(wú)法進(jìn)行精確計(jì)算的缺憾。BigDecimal類位于java.maths類包下。首先我們來(lái)看下如何構(gòu)造一個(gè)BigDecimal對(duì)象。它的構(gòu)造函數(shù)很多,這里挑選最常用的兩個(gè)來(lái)演示一下:一個(gè)就是BigDecimal(double val),另一個(gè)就是BigDecimal(String str)。這兩個(gè)看上去沒(méi)什么太大區(qū)別,但是正像API描述中說(shuō)的那樣:

 

也就是說(shuō)利用double作為參數(shù)的構(gòu)造函數(shù),無(wú)法精確構(gòu)造一個(gè)BigDecimal對(duì)象,需要自己指定一個(gè)上下文的環(huán)境,也就是指定精確位。而利用String對(duì)象作為參數(shù)傳入的構(gòu)造函數(shù)能精確的構(gòu)造出一個(gè)BigDecimal對(duì)象。請(qǐng)看下面的代碼:

運(yùn)行后輸出:

10.123
10.1229999999999993320898283855058252811431884765625

所以我們?cè)谶x擇構(gòu)造函數(shù)時(shí),要看具體需求而定。

另外,很多人會(huì)問(wèn)到怎么將基本類型,如int,float,double,long,和BigDecimal對(duì)象相互轉(zhuǎn)換。很簡(jiǎn)單:

基本類型通過(guò)構(gòu)造函數(shù)轉(zhuǎn)換成對(duì)應(yīng)的BigDecimal對(duì)象,而BigDecimal類提供了諸如intValue(), floatValue(), doubleValue(), longValue()方法來(lái)將BigDecimal對(duì)象轉(zhuǎn)換成對(duì)應(yīng)的值。

關(guān)于BigDecimal是如何計(jì)算的,我以論壇中一個(gè)人的提問(wèn)帖子為例,來(lái)簡(jiǎn)單的寫出BigDecimal的運(yùn)算方法。題目是:李白無(wú)事街上走,提壺去買酒。遇店加一倍,見花喝一斗,五遇花和店,喝光壺中酒,試問(wèn)李白壺中原有多少斗酒?

這道題應(yīng)該是從后往前推,并且要逆運(yùn)算,最后得出原有酒的體積。

運(yùn)行結(jié)果:

0.96875

希望本文所述對(duì)大家Java程序設(shè)計(jì)的學(xué)習(xí)有所幫助。

本文關(guān)鍵詞:BS一卡通,售飯,水控
回到頂部