最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的RoundingMode舍入模式詳解

 更新時(shí)間:2026年01月19日 10:32:01   作者:lagrahhn  
Java中的RoundingMode枚舉類用于控制高精度數(shù)值處理時(shí)的舍入行為,提供多種舍入模式,本文給大家介紹Java的RoundingMode舍入模式,感興趣的朋友跟隨小編一起看看吧

RoundingMode 是 Java 中用于控制舍入行為的枚舉類,位于 java.math 包中。它常與 BigDecimal、DecimalFormat 等高精度數(shù)值處理類一起使用,以明確指定在精度不足或需要截?cái)鄷r(shí)應(yīng)如何舍入。

一、RoundingMode 枚舉值(共 8 種)

枚舉常量說明對(duì)應(yīng)的舍入規(guī)則(以正數(shù)為例)
UP遠(yuǎn)離零方向舍入1.1 → 2,1.9 → 2,-1.1 → -2
DOWN向零方向舍入(截?cái)啵?/td>1.9 → 1,-1.9 → -1
CEILING向正無窮方向舍入正數(shù)同 UP,負(fù)數(shù)同 DOWN
FLOOR向負(fù)無窮方向舍入正數(shù)同 DOWN,負(fù)數(shù)同 UP
HALF_UP四舍五入(最常用)1.5 → 2,1.4 → 1,-1.5 → -2
HALF_DOWN五舍六入1.5 → 1,1.6 → 2,-1.5 → -1
HALF_EVEN銀行家舍入法(四舍六入五成雙)1.5 → 2,2.5 → 2,3.5 → 4(使結(jié)果為偶數(shù))
UNNECESSARY不需要舍入,若需舍入則拋出 ArithmeticException僅用于精確計(jì)算,如 1.00 保留兩位小數(shù)沒問題,但 1.01 保留一位會(huì)報(bào)錯(cuò)

?? 注意:HALF_UP 是我們?nèi)粘Uf的“四舍五入”,而 HALF_EVEN 是 IEEE 754 推薦的標(biāo)準(zhǔn)舍入方式,可減少累積誤差。

二、示例

import java.math.BigDecimal;  
import java.math.RoundingMode;  
public class RoundingModeTest {  
    public static void main(String[] args) {  
        BigDecimal value = new BigDecimal("2.555");  
        // RoundingMode.UP 指定位向上取整  
        System.out.println("RoundingMode.UP 指定位向上取整");  
        System.out.println(value.setScale(0,RoundingMode.UP));  
        System.out.println(value.setScale(1,RoundingMode.UP));  
        // RoundingMode.UP 指定位向下取整  
        System.out.println("RoundingMode.DOWN 指定位向下取整");  
        System.out.println(value.setScale(0,RoundingMode.DOWN));  
        System.out.println(value.setScale(1,RoundingMode.DOWN));  
        // RoundingMode.CEILING 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向上取整      
System.out.println("RoundingMode.CEILING 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向上取整");  
        System.out.println(value.setScale(0,RoundingMode.CEILING));  
        System.out.println(value.setScale(1,RoundingMode.CEILING));  
        System.out.println(value.setScale(2,RoundingMode.CEILING));  
        // RoundingMode.FLOOR 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向下取整  
        System.out.println("RoundingMode.FLOOR 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向下取整");  
        System.out.println(value.setScale(0,RoundingMode.FLOOR));  
        System.out.println(value.setScale(1,RoundingMode.FLOOR));  
        System.out.println(value.setScale(2,RoundingMode.FLOOR));  
        // RoundingMode.HALF_UP 四舍五入  
        System.out.println("RoundingMode.HALF_UP 四舍五入");  
        System.out.println(value.setScale(0,RoundingMode.HALF_UP));  
        System.out.println(value.setScale(1,RoundingMode.HALF_UP));  
        System.out.println(value.setScale(2,RoundingMode.HALF_UP));  
        // RoundingMode.HALF_DOWN 五舍六入  
        System.out.println("RoundingMode.HALF_DOWN 五舍六入");  
        System.out.println(value.setScale(0,RoundingMode.HALF_DOWN));  
        System.out.println(value.setScale(1,RoundingMode.HALF_DOWN));  
        System.out.println(value.setScale(2,RoundingMode.HALF_DOWN));  
        // RoundingMode.HALF_EVEN 銀行家舍入,四舍六入,五成雙,看前一位  
        System.out.println("RoundingMode.HALF_EVEN 銀行家舍入,四舍六入,五成雙,看前一位");  
        System.out.println(value.setScale(0,RoundingMode.HALF_EVEN));  
        System.out.println(value.setScale(1,RoundingMode.HALF_EVEN));  
        System.out.println(value.setScale(2,RoundingMode.HALF_EVEN));  
        // RoundingMode.UNNECESSARY 不進(jìn)行舍入,如果舍入位不為0,則拋出ArithmeticException異常  
        System.out.println("RoundingMode.UNNECESSARY 不進(jìn)行舍入,如果舍入位不為0,則拋出ArithmeticException異常");  
    }  
}
RoundingMode.UP 指定位向上取整
3
2.6
RoundingMode.DOWN 指定位向下取整
2
2.5
RoundingMode.CEILING 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向上取整
3
2.6
2.56
RoundingMode.FLOOR 指定位向最近整數(shù)取整,如果距離兩邊一樣遠(yuǎn),則向下取整
2
2.5
2.55
RoundingMode.HALF_UP 四舍五入
3
2.6
2.56
RoundingMode.HALF_DOWN 五舍六入
3
2.6
2.55
RoundingMode.HALF_EVEN 銀行家舍入,四舍六入,五成雙,看前一位
3
2.6
2.56
RoundingMode.UNNECESSARY 不進(jìn)行舍入,如果舍入位不為0,則拋出ArithmeticException異常

到此這篇關(guān)于Java中的RoundingMode舍入模式詳解的文章就介紹到這了,更多相關(guān)java roundingmode舍入模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • RocketMQ消息發(fā)送流程源碼剖析

    RocketMQ消息發(fā)送流程源碼剖析

    這篇文章主要為大家介紹了RocketMQ消息發(fā)送流程源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • SpringBoot配置actuator的代碼

    SpringBoot配置actuator的代碼

    這篇文章主要介紹了SpringBoot配置actuator,這里大家需要注意可以監(jiān)控SpringBoot?中的?Tomcat?性能數(shù)據(jù),?以日志形式定期輸出監(jiān)控?cái)?shù)據(jù),?只需要配置一個(gè)Bean,需要的朋友可以參考下
    2022-03-03
  • Spring線程池ThreadPoolTaskExecutor的用法及說明

    Spring線程池ThreadPoolTaskExecutor的用法及說明

    這篇文章主要介紹了Spring線程池ThreadPoolTaskExecutor的用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot中的HATEOAS詳情

    SpringBoot中的HATEOAS詳情

    這篇文章主要介紹了SpringBoot中的HATEOAS詳情,SpringBoot提供了HATEOAS的便捷使用方式,文章圍繞主題展開詳細(xì)介紹內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • 記一次集成swagger2(Knife4j)在線文檔提示:Knude4j文檔請(qǐng)求異常的解決辦法

    記一次集成swagger2(Knife4j)在線文檔提示:Knude4j文檔請(qǐng)求異常的解決辦法

    Knife4j是一個(gè)集Swagger2 和 OpenAPI3為一體的增強(qiáng)解決方案,下面這篇文章主要給大家介紹了關(guān)于一次集成swagger2(Knife4j)在線文檔提示:Knude4j文檔請(qǐng)求異常的解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • java生成在線驗(yàn)證碼

    java生成在線驗(yàn)證碼

    這篇文章主要介紹了java生成在線驗(yàn)證碼,需要的朋友可以參考下
    2023-10-10
  • 詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn))

    詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn))

    這篇文章主要介紹了詳解SpringBoot 添加對(duì)JSP的支持(附常見坑點(diǎn)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Java基礎(chǔ)之MapReduce框架總結(jié)與擴(kuò)展知識(shí)點(diǎn)

    Java基礎(chǔ)之MapReduce框架總結(jié)與擴(kuò)展知識(shí)點(diǎn)

    本章,是MapReduce的最終章,我在寫本章的時(shí)候,發(fā)現(xiàn)前面忘記介紹MpaTask與ReduceTask了,所以本章補(bǔ)上哈,另外還有兩個(gè)擴(kuò)展的知識(shí)點(diǎn),講完這些,我會(huì)對(duì)整個(gè)MapReduce進(jìn)行總結(jié)一下,讓大家再次了解MapReduce的工作流程,更加清晰地認(rèn)識(shí)MapReduce ,需要的朋友可以參考下
    2021-05-05
  • java隨機(jī)字符補(bǔ)充版

    java隨機(jī)字符補(bǔ)充版

    今天在zuidaimai看到一個(gè)java隨機(jī)字符生成demo,正好要用,但發(fā)現(xiàn)不完整,重新整理一下,分享給有需要的朋友
    2014-01-01
  • spring cloud 分布式鏈路追蹤的方法

    spring cloud 分布式鏈路追蹤的方法

    這篇文章主要介紹了spring cloud 分布式鏈路追蹤的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論

土默特左旗| 新闻| 通城县| 五台县| 咸宁市| 新津县| 六盘水市| 准格尔旗| 商洛市| 贵德县| 和顺县| 林口县| 荥阳市| 克拉玛依市| 周宁县| 城口县| 江北区| 辽宁省| 揭西县| 万荣县| 滁州市| 海盐县| 东乡县| 上饶县| 神木县| 南丹县| 城市| 兰州市| 栾城县| 湘潭县| 井研县| 新田县| 连云港市| 海安县| 阳谷县| 义马市| 尤溪县| 开封县| 广宗县| 衡南县| 杂多县|