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

BigDecimal如何保留兩位小數(shù)

 更新時間:2026年04月01日 09:36:43   作者:慢慢變富的w  
本文介紹了浮點數(shù)計算的不精確性,以及在商業(yè)計算中需要使用BigDecimal來保證精確性,詳細(xì)解釋了BigDecimal的setScale()方法和roundingMode常量的使用方法,并提供了示例代碼

前言

在項目中經(jīng)常會用到小數(shù)的一些計算,而float和double類型的主要設(shè)計目標(biāo)是為了科學(xué)計算和工程計算。

他們執(zhí)行二進(jìn)制浮點運算,這是為了在廣域數(shù)值范圍上提供較為精確的快速近似計算而精心設(shè)計的。

然而,它們沒有提供完全精確的結(jié)果,所以不應(yīng)該被用于要求精確結(jié)果的場合。

但是,商業(yè)計算往往要求結(jié)果精確。所以有時候必須要采用BigDecimal。

1.代碼實現(xiàn)

代碼如下(示例):

public class Demo {
   public static void main(String[] args) {
  		BigDecimal a =null;
  		Integer faultRate = 6;
  		a = BigDecimal.valueOf(faultRate.doubleValue()/3);
  		BigDecimal  b =a.setScale(2, RoundingMode.HALF_UP);//保留兩位小數(shù)
  		System.out.println("結(jié)果是"+b);
  		//下面將結(jié)果轉(zhuǎn)化成百分比
  		NumberFormat percent = NumberFormat.getPercentInstance();
       percent.setMaximumFractionDigits(2);
       System.out.println(percent.format(b.doubleValue()));
   }
}

運行結(jié)果:


2.方法詳解

  • BigDecimal.setScale()方法用于格式化小數(shù)點
  • setScale(1)表示保留一位小數(shù),默認(rèn)用四舍五入方式
  • setScale(1,BigDecimal.ROUND_DOWN)直接刪除多余的小數(shù)位,如2.35會變成2.3
  • setScale(1,BigDecimal.ROUND_UP)進(jìn)位處理,2.35變成2.4
  • setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35變成2.4
  • setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35變成2.3,如果是5則向下舍
  • setScaler(1,BigDecimal.ROUND_CEILING)接近正無窮大的舍入
  • setScaler(1,BigDecimal.ROUND_FLOOR)接近負(fù)無窮大的舍入,數(shù)字>0和ROUND_UP作用一樣,數(shù)字<0和ROUND_DOWN作用一樣
  • setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的數(shù)字舍入,如果與兩個相鄰數(shù)字的距離相等,則向相鄰的偶數(shù)舍入。

注釋

1:scale指的是你小數(shù)點后的位數(shù)。

  • 比如123.456則score就是3.
  • score()就是BigDecimal類中的方法啊。
  • 比如:BigDecimal b = new BigDecimal(“123.456”);b.scale(),返回的就是3.

2:roundingMode是小數(shù)的保留模式。

  • 它們都是BigDecimal中的常量字段,有很多種。
  • 比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。

3:pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)的意思是說:

  • 我用一個BigDecimal對象除以divisor后的結(jié)果,并且要求這個結(jié)果保留有scale個小數(shù)位,
  • roundingMode表示的就是保留模式是什么,是四舍五入啊還是其它的,你可以自己選!

4:對于一般add、subtract、multiply方法的小數(shù)位

格式化如下:

  BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
  System.out.println("mData=" + mData);

運行結(jié)果:

mData=9.66

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • selenium+java+chrome環(huán)境搭建的方法步驟

    selenium+java+chrome環(huán)境搭建的方法步驟

    這篇文章主要介紹了selenium+java+chrome環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    這篇文章主要介紹了SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring對事務(wù)管理的支持

    Spring對事務(wù)管理的支持

    今天小編就為大家分享一篇關(guān)于Spring對事務(wù)管理的支持,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java集合Stack源碼詳解

    Java集合Stack源碼詳解

    java工具包中的Stack是繼承于Vector(矢量隊列)的,由于Vector是通過數(shù)組實現(xiàn)的,這就意味著,Stack也是通過數(shù)組實現(xiàn)的,而非鏈表。當(dāng)然,我們也可以將LinkedList當(dāng)作棧來使用!
    2018-05-05
  • springboot+rabbitmq實現(xiàn)指定消費者才能消費的方法

    springboot+rabbitmq實現(xiàn)指定消費者才能消費的方法

    當(dāng)項目部署到測試環(huán)境后,QA測試過程中,總是“莫名其妙”的發(fā)現(xiàn)所保存的用戶付款單數(shù)據(jù)有問題。這篇文章主要介紹了springboot+rabbitmq實現(xiàn)指定消費者才能消費,需要的朋友可以參考下
    2021-11-11
  • 總結(jié)java多線程之互斥與同步解決方案

    總結(jié)java多線程之互斥與同步解決方案

    文中總結(jié)了線程互斥與同步,synchronized使用細(xì)節(jié)及原理,Reentrylock使用細(xì)節(jié)等知識,對解決Java多線程互斥與同步等問題很有效,,需要的朋友可以參考下
    2021-05-05
  • 詳解Spring Boot對 Apache Pulsar的支持

    詳解Spring Boot對 Apache Pulsar的支持

    Spring Boot通過提供spring-pulsar和spring-pulsar-reactive自動配置支持Apache Pulsar,類路徑中這些依賴存在時,Spring Boot自動配置命令式和反應(yīng)式Pulsar組件,PulsarClient自動注冊,默認(rèn)連接本地Pulsar實例,感興趣的朋友一起看看吧
    2024-11-11
  • Maven打包報錯"powershell不是內(nèi)部命令"的解決方法

    Maven打包報錯"powershell不是內(nèi)部命令"的解決方法

    Maven打包時遇到"powershell不是內(nèi)部命令"的報錯,根源在于路徑中的空格,當(dāng)IDEA安裝在含空格的路徑,下面小編就和大家詳細(xì)介紹一下具體解決方法吧
    2026-02-02
  • SpringBoot?Admin集成診斷利器Arthas示例實現(xiàn)

    SpringBoot?Admin集成診斷利器Arthas示例實現(xiàn)

    這篇文章主要為大家介紹了SpringBoot?Admin集成診斷利器Arthas示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java中String類(字符串操作)的10個常見問題和解決方法

    Java中String類(字符串操作)的10個常見問題和解決方法

    這篇文章主要介紹了Java中String類(字符串)操作的10個常見問題,需要的朋友可以參考下
    2014-04-04

最新評論

大兴区| 雷山县| 门源| 武平县| 瑞金市| 工布江达县| 辛集市| 临洮县| 安溪县| 寿宁县| 高安市| 漳州市| 修水县| 昭通市| 富蕴县| 邳州市| 麟游县| 万全县| 睢宁县| 阿克苏市| 阿坝| 巩留县| 三原县| 威信县| 石泉县| 玉山县| 横峰县| 嘉禾县| 恩平市| 永年县| 凤山市| 晋江市| 麻栗坡县| 葵青区| 葫芦岛市| 竹溪县| 孝昌县| 乐昌市| 肃北| 正镶白旗| 广安市|