Bigdecimal 8種舍入模式演示以及說明

Bigdecimal 8種舍入模式演示

因?yàn)槲铱偸菍igdecimal的舍入模式有疑問蝴悉,所以干脆觀察小數(shù)的舍入結(jié)果鳄逾,實(shí)在看不懂那些晦澀難懂的說明侠驯。而且多次理解錯誤導(dǎo)致結(jié)果錯誤兄纺!

程序代碼github地址:
https://github.com/shihua-guo/Java-Learn/tree/master/JavaBigdecimalRound
直接雙擊run就可以運(yùn)行了
測試的數(shù)據(jù)統(tǒng)一精確到小數(shù)點(diǎn)后2位着降,包括幾種類型:

  • 正數(shù)咖刃,有2位小數(shù)泳炉,且小于5
  • 正數(shù),有2位小數(shù)嚎杨,且大于5
  • 正數(shù)花鹅,有3位小數(shù),且第三位小數(shù)小于5
  • 正數(shù)枫浙,有3位小數(shù)刨肃,且第三位大數(shù)小于5
  • 負(fù)數(shù),有2位小數(shù)箩帚,且小于5
  • 負(fù)數(shù)真友,有2位小數(shù),且大于5
  • 負(fù)數(shù)紧帕,有3位小數(shù)盔然,且第三位小數(shù)小于5
  • 負(fù)數(shù)桅打,有3位小數(shù),且第三位大數(shù)小于5

--------------------ROUND_UP 模式--------------------
原始值[12.12]愈案,舍入后的值[12.12]挺尾,值變化=
原始值[12.16],舍入后的值[12.17]站绪,值變化↑
原始值[12.122]遭铺,舍入后的值[12.13],值變化↑
原始值[12.126]恢准,舍入后的值[12.13]魂挂,值變化↑
原始值[-12.12],舍入后的值[-12.12]顷歌,值變化=
原始值[-12.16]锰蓬,舍入后的值[-12.17],值變化↓
原始值[-12.122]眯漩,舍入后的值[-12.13]芹扭,值變化↓
原始值[-12.126],舍入后的值[-12.13]赦抖,值變化↓
--------------------ROUND_UP 模式--------------------

--------------------ROUND_DOWN 模式--------------------
原始值[12.12]舱卡,舍入后的值[12.11],值變化↓
原始值[12.16]队萤,舍入后的值[12.16]轮锥,值變化=
原始值[12.122],舍入后的值[12.12]要尔,值變化↓
原始值[12.126]舍杜,舍入后的值[12.12],值變化↓
原始值[-12.12]赵辕,舍入后的值[-12.11]既绩,值變化↑
原始值[-12.16],舍入后的值[-12.16]还惠,值變化=
原始值[-12.122]饲握,舍入后的值[-12.12],值變化↑
原始值[-12.126]蚕键,舍入后的值[-12.12]救欧,值變化↑
--------------------ROUND_DOWN 模式--------------------

--------------------ROUND_CEILING 模式--------------------
原始值[12.12],舍入后的值[12.12]锣光,值變化=
原始值[12.16]笆怠,舍入后的值[12.17],值變化↑
原始值[12.122]嫉晶,舍入后的值[12.13]骑疆,值變化↑
原始值[12.126]田篇,舍入后的值[12.13],值變化↑
原始值[-12.12]箍铭,舍入后的值[-12.11]泊柬,值變化↑
原始值[-12.16],舍入后的值[-12.16]诈火,值變化=
原始值[-12.122]兽赁,舍入后的值[-12.12],值變化↑
原始值[-12.126]冷守,舍入后的值[-12.12]刀崖,值變化↑
--------------------ROUND_CEILING 模式--------------------

--------------------ROUND_FLOOR 模式--------------------
原始值[12.12],舍入后的值[12.11]拍摇,值變化↓
原始值[12.16]亮钦,舍入后的值[12.16],值變化=
原始值[12.122]充活,舍入后的值[12.12]蜂莉,值變化↓
原始值[12.126],舍入后的值[12.12]混卵,值變化↓
原始值[-12.12]映穗,舍入后的值[-12.12],值變化=
原始值[-12.16]幕随,舍入后的值[-12.17]蚁滋,值變化↓
原始值[-12.122],舍入后的值[-12.13]赘淮,值變化↓
原始值[-12.126]辕录,舍入后的值[-12.13],值變化↓
--------------------ROUND_FLOOR 模式--------------------

--------------------ROUND_HALF_UP 模式--------------------
原始值[12.12]梢卸,舍入后的值[12.12]踏拜,值變化=
原始值[12.16],舍入后的值[12.16]低剔,值變化=
原始值[12.122],舍入后的值[12.12]肮塞,值變化↓
原始值[12.126]襟齿,舍入后的值[12.13],值變化↑
原始值[-12.12]枕赵,舍入后的值[-12.12]猜欺,值變化=
原始值[-12.16],舍入后的值[-12.16]拷窜,值變化=
原始值[-12.122]开皿,舍入后的值[-12.12]涧黄,值變化↑
原始值[-12.126],舍入后的值[-12.13]赋荆,值變化↓
--------------------ROUND_HALF_UP 模式--------------------

--------------------ROUND_HALF_DOWN 模式--------------------
原始值[12.12]笋妥,舍入后的值[12.12],值變化=
原始值[12.16]窄潭,舍入后的值[12.16]春宣,值變化=
原始值[12.122],舍入后的值[12.12]嫉你,值變化↓
原始值[12.126]月帝,舍入后的值[12.13],值變化↑
原始值[-12.12]幽污,舍入后的值[-12.12]嚷辅,值變化=
原始值[-12.16],舍入后的值[-12.16]距误,值變化=
原始值[-12.122]簸搞,舍入后的值[-12.12],值變化↑
原始值[-12.126]深寥,舍入后的值[-12.13]攘乒,值變化↓
--------------------ROUND_HALF_DOWN 模式--------------------

--------------------ROUND_HALF_EVEN 模式--------------------
原始值[12.12],舍入后的值[12.12]惋鹅,值變化=
原始值[12.16]则酝,舍入后的值[12.16],值變化=
原始值[12.122]闰集,舍入后的值[12.12]沽讹,值變化↓
原始值[12.126],舍入后的值[12.13]武鲁,值變化↑
原始值[-12.12]爽雄,舍入后的值[-12.12],值變化=
原始值[-12.16]沐鼠,舍入后的值[-12.16]挚瘟,值變化=
原始值[-12.122],舍入后的值[-12.12]饲梭,值變化↑
原始值[-12.126]乘盖,舍入后的值[-12.13],值變化↓
--------------------ROUND_HALF_EVEN 模式--------------------

8種舍入模式說明

原文http://www.reibang.com/p/b2084b2b2dce

  1. ROUND_UP
    舍入遠(yuǎn)離零的舍入模式憔涉。
    在丟棄非零部分之前始終增加數(shù)字(始終對非零舍棄部分前面的數(shù)字加1)订框。
    注意,此舍入模式始終不會減少計算值的大小兜叨。
    1.105 = 1.11
  2. ROUND_DOWN
    接近零的舍入模式穿扳。
    在丟棄某部分之前始終不增加數(shù)字(從不對舍棄部分前面的數(shù)字加1衩侥,即截短)。
    注意矛物,此舍入模式始終不會增加計算值的大小茫死。
    1.105 = 1.10
  3. ROUND_CEILING
    接近正無窮大的舍入模式。
    如果 BigDecimal 為正泽谨,則舍入行為與 ROUND_UP 相同;
    如果為負(fù)璧榄,則舍入行為與 ROUND_DOWN 相同。
    注意吧雹,此舍入模式始終不會減少計算值骨杂。
  4. ROUND_FLOOR
    接近負(fù)無窮大的舍入模式。
    如果 BigDecimal 為正雄卷,則舍入行為與 ROUND_DOWN 相同;
    如果為負(fù)搓蚪,則舍入行為與 ROUND_UP 相同。
    注意丁鹉,此舍入模式始終不會增加計算值妒潭。
  5. ROUND_HALF_UP
    向“最接近的”數(shù)字舍入,如果與兩個相鄰數(shù)字的距離相等揣钦,則為向上舍入的舍入模式雳灾。
    如果舍棄部分 >= 0.5,則舍入行為與 ROUND_UP 相同;否則舍入行為與 ROUND_DOWN 相同冯凹。
    注意谎亩,這是我們大多數(shù)人在小學(xué)時就學(xué)過的舍入模式(四舍五入)。
  6. ROUND_HALF_DOWN
    向“最接近的”數(shù)字舍入宇姚,如果與兩個相鄰數(shù)字的距離相等匈庭,則為上舍入的舍入模式。
    如果舍棄部分 > 0.5浑劳,則舍入行為與 ROUND_UP 相同;否則舍入行為與 ROUND_DOWN 相同(五舍六入)阱持。
  7. ROUND_HALF_EVEN
    向“最接近的”數(shù)字舍入,如果與兩個相鄰數(shù)字的距離相等魔熏,則向相鄰的偶數(shù)舍入衷咽。
    如果舍棄部分左邊的數(shù)字為奇數(shù),則舍入行為與 ROUND_HALF_UP 相同;
    如果為偶數(shù)蒜绽,則舍入行為與 ROUND_HALF_DOWN 相同兵罢。
    注意,在重復(fù)進(jìn)行一系列計算時滓窍,此舍入模式可以將累加錯誤減到最小。
    此舍入模式也稱為“銀行家舍入法”巩那,主要在美國使用吏夯。
    四舍六入此蜈,五分兩種情況。
    如果前一位為奇數(shù)噪生,則入位裆赵,否則舍去。
    以下例子為保留小數(shù)點(diǎn)1位跺嗽,那么這種舍入方式下的結(jié)果战授。
    1.15 = 1.2, 1.25 = 1.2
  8. ROUND_UNNECESSARY
    斷言請求的操作具有精確的結(jié)果桨嫁,因此不需要舍入植兰。
    如果對獲得精確結(jié)果的操作指定此舍入模式,則拋出ArithmeticException
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璃吧,一起剝皮案震驚了整個濱河市楣导,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌畜挨,老刑警劉巖筒繁,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巴元,居然都是意外死亡毡咏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門逮刨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呕缭,“玉大人,你說我怎么就攤上這事禀忆‰瘢” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵箩退,是天一觀的道長离熏。 經(jīng)常有香客問我,道長戴涝,這世上最難降的妖魔是什么滋戳? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮啥刻,結(jié)果婚禮上奸鸯,老公的妹妹穿的比我還像新娘。我一直安慰自己可帽,他們只是感情好娄涩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般蓄拣。 火紅的嫁衣襯著肌膚如雪扬虚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天球恤,我揣著相機(jī)與錄音辜昵,去河邊找鬼。 笑死咽斧,一個胖子當(dāng)著我的面吹牛堪置,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播张惹,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼舀锨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诵叁?” 一聲冷哼從身側(cè)響起雁竞,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拧额,沒想到半個月后碑诉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侥锦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年进栽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恭垦。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡快毛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出番挺,到底是詐尸還是另有隱情唠帝,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布玄柏,位于F島的核電站襟衰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粪摘。R本人自食惡果不足惜瀑晒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徘意。 院中可真熱鬧苔悦,春花似錦、人聲如沸椎咧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竹宋。三九已至劳澄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜈七,已是汗流浹背莫矗。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工飒硅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留作谚,地道東北人三娩。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像妹懒,于是被迫代替她去往敵國和親雀监。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • java.math.BigDecimal 不可變的眨唬、任意精度的有符號十進(jìn)制數(shù)。BigDecimal 由任意精度的整...
    fly_he閱讀 868評論 1 0
  • JAVA面試題 1匾竿、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,146評論 1 0
  • 互聯(lián)網(wǎng)金融 bigdecimal是互聯(lián)網(wǎng)金融的核心 常用7種舍入模式 ROUND_UP:遠(yuǎn)離零方向舍入,向遠(yuǎn)離0的...
    萬物皆有序和公式閱讀 2,774評論 1 0
  • p2p理財平臺收益排名_華融道理財 p2p理財平臺收益排名_華融道理財 p2p理財平臺收益排名_華融道理財
    呂前襖92600閱讀 200評論 0 0
  • 定義:在對象之間定義一對多的依賴岭妖,這樣一來临庇,當(dāng)一個對象改變狀態(tài),依賴它的對象都會收到通知昵慌,并自動更新 它屬于解耦的...
    夜者無念閱讀 127評論 0 0