日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BigDecimal的四舍五入的RoundingMode 选择

發(fā)布時(shí)間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BigDecimal的四舍五入的RoundingMode 选择 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

BigDecimal的四舍五入的RoundingMode 選擇

RoundingMode介紹:

RoundingMode是一個(gè)枚舉類,有一下幾個(gè)常量:UP,DOWN,CEILING,FLOOR,HALF_UP,HALF_DOWN,HALF_EVEN,UNNECESSARY


?

UP

public static final RoundingMode UP

遠(yuǎn)離零方向舍入的舍入模式。始終對(duì)非零舍棄部分前面的數(shù)字加 1。注意,此舍入模式始終不會(huì)減少計(jì)算值的絕對(duì)值。

示例:

輸入數(shù)字使用?UP?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.56
2.53
1.62
1.12
1.01
-1.0-1
-1.1-2
-1.6-2
-2.5-3
-5.5-6

DOWN

public static final RoundingMode DOWN

向零方向舍入的舍入模式。從不對(duì)舍棄部分前面的數(shù)字加 1(即截尾)。注意,此舍入模式始終不會(huì)增加計(jì)算值的絕對(duì)值。

示例:

輸入數(shù)字使用?DOWN?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.55
2.52
1.61
1.11
1.01
-1.0-1
-1.1-1
-1.6-1
-2.5-2
-5.5-5

CEILING

public static final RoundingMode CEILING

向正無限大方向舍入的舍入模式。如果結(jié)果為正,則舍入行為類似于?RoundingMode.UP;如果結(jié)果為負(fù),則舍入行為類似于?RoundingMode.DOWN。注意,此舍入模式始終不會(huì)減少計(jì)算值。

示例:

輸入數(shù)字使用?CEILING?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.56
2.53
1.62
1.12
1.01
-1.0-1
-1.1-1
-1.6-1
-2.5-2
-5.5-5

FLOOR

public static final RoundingMode FLOOR

向負(fù)無限大方向舍入的舍入模式。如果結(jié)果為正,則舍入行為類似于?RoundingMode.DOWN;如果結(jié)果為負(fù),則舍入行為類似于RoundingMode.UP。注意,此舍入模式始終不會(huì)增加計(jì)算值。

示例:

輸入數(shù)字使用?FLOOR?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.55
2.52
1.61
1.11
1.01
-1.0-1
-1.1-2
-1.6-2
-2.5-3
-5.5-6

HALF_UP

public static final RoundingMode HALF_UP

向最接近數(shù)字方向舍入的舍入模式,如果與兩個(gè)相鄰數(shù)字的距離相等,則向上舍入。如果被舍棄部分 >= 0.5,則舍入行為同?RoundingMode.UP;否則舍入行為同RoundingMode.DOWN。注意,此舍入模式就是通常學(xué)校里講的四舍五入。

示例:

輸入數(shù)字使用?HALF_UP?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.56
2.53
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-3
-5.5-6

HALF_DOWN

public static final RoundingMode HALF_DOWN

向最接近數(shù)字方向舍入的舍入模式,如果與兩個(gè)相鄰數(shù)字的距離相等,則向下舍入。如果被舍棄部分 > 0.5,則舍入行為同?RoundingMode.UP;否則舍入行為同RoundingMode.DOWN。

示例:

輸入數(shù)字使用?HALF_DOWN?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.55
2.52
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-2
-5.5-5

HALF_EVEN

public static final RoundingMode HALF_EVEN

向最接近數(shù)字方向舍入的舍入模式,如果與兩個(gè)相鄰數(shù)字的距離相等,則向相鄰的偶數(shù)舍入。如果舍棄部分左邊的數(shù)字為奇數(shù),則舍入行為同RoundingMode.HALF_UP;如果為偶數(shù),則舍入行為同RoundingMode.HALF_DOWN。注意,在重復(fù)進(jìn)行一系列計(jì)算時(shí),此舍入模式可以在統(tǒng)計(jì)上將累加錯(cuò)誤減到最小。此舍入模式也稱為“銀行家舍入法”,主要在美國使用。此舍入模式類似于 Java 中對(duì)float?和double?算法使用的舍入策略。

示例:

輸入數(shù)字使用?HALF_EVEN?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.56
2.52
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-2
-5.5-6

?

UNNECESSARY

public static final RoundingMode UNNECESSARY

用于斷言請(qǐng)求的操作具有精確結(jié)果的舍入模式,因此不需要舍入。如果對(duì)生成精確結(jié)果的操作指定此舍入模式,則拋出?ArithmeticException。

示例:

輸入數(shù)字使用?UNNECESSARY?舍入模式
將輸入數(shù)字舍入為一位數(shù)
5.5拋出?ArithmeticException
2.5拋出?ArithmeticException
1.6拋出?ArithmeticException
1.1拋出?ArithmeticException
1.01
-1.0-1
-1.1拋出?ArithmeticException
-1.6拋出?ArithmeticException
-2.5拋出?ArithmeticException
-5.5拋出?ArithmeticException

總結(jié)

以上是生活随笔為你收集整理的BigDecimal的四舍五入的RoundingMode 选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。