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

Java中BigDecimal的基本運算(詳解)

 更新時間:2017年10月24日 10:03:46   作者:weknow619  
下面小編就為大家?guī)硪黄狫ava中BigDecimal的基本運算(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

BigDecimal一共有4個夠造方法,讓來看看其中比較常用的兩種用法:

第一種:BigDecimal(double val)

Translates a double into a BigDecimal.

第二種:BigDecimal(String val)

Translates the String repre sentation of a BigDecimal into a BigDecimal.

使用BigDecimal要用String來夠造,要做一個加法運算,需要先將兩個浮點數(shù)轉(zhuǎn)為String,然后夠造成BigDecimal,在其中一個上調(diào)用add方法,傳入另一個作為參數(shù),然后把運算的結(jié)果(BigDecimal)再轉(zhuǎn)換為浮點數(shù)。

public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)
public static double round(double v,int scale)

基本使用:

public class Arith{
 
 private static final int DEF_DIV_SCALE = 10; //這個類不能實例化 
 
 private Arith(){ 
  
 } 
 
 /** 
 * 提供精確的加法運算。 
 * @param v1 被加數(shù) 
 * @param v2 加數(shù) 
 * @return 兩個參數(shù)的和 
 */ 
 public static double add(double v1,double v2){ 
  BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
  BigDecimal b2 = new BigDecimal(Double.toString(v2)); 
  return b1.add(b2).doubleValue(); 
 } 
 
 /** 
 * 提供精確的減法運算。 
 * @param v1 被減數(shù) 
 * @param v2 減數(shù) 
 * @return 兩個參數(shù)的差 
 */ 
 public static double sub(double v1,double v2){ 
  BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
  BigDecimal b2 = new BigDecimal(Double.toString(v2)); 
  return b1.subtract(b2).doubleValue(); 
 } 
 
 /** 
 * 提供精確的乘法運算。 
 * @param v1 被乘數(shù) 
 * @param v2 乘數(shù) 
 * @return 兩個參數(shù)的積 
 */ 
 public static double mul(double v1,double v2){ 
  BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
  BigDecimal b2 = new BigDecimal(Double.toString(v2)); 
  return b1.multiply(b2).doubleValue(); 
 } 
 
 /** 
 * 提供(相對)精確的除法運算,當發(fā)生除不盡的情況時,精確到 
 * 小數(shù)點以后10位,以后的數(shù)字四舍五入。 
 * @param v1 被除數(shù) 
 * @param v2 除數(shù) 
 * @return 兩個參數(shù)的商 
 */ 
 public static double div(double v1,double v2){ 
  return div(v1,v2,DEF_DIV_SCALE); 
 } 
 
 /** 
 * 提供(相對)精確的除法運算。當發(fā)生除不盡的情況時,由scale參數(shù)指 
 * 定精度,以后的數(shù)字四舍五入。 
 * @param v1 被除數(shù) 
 * @param v2 除數(shù) 
 * @param scale 表示表示需要精確到小數(shù)點以后幾位。 
 * @return 兩個參數(shù)的商 
 */ 
 public static double div(double v1,double v2,int scale){ 
  if(scale<0){ 
   throw new IllegalArgumentException("The scale must be a positive integer or zero"); 
  } 
  BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
  BigDecimal b2 = new BigDecimal(Double.toString(v2)); 
  return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 
 } 
 
 /** 
 * 提供精確的小數(shù)位四舍五入處理。 
 * @param v 需要四舍五入的數(shù)字 
 * @param scale 小數(shù)點后保留幾位 
 * @return 四舍五入后的結(jié)果 
 */ 
 public static double round(double v,int scale){ 
  if(scale<0){ 
   throw new IllegalArgumentException("The scale must be a positive integer or zero"); 
  } 
  BigDecimal b = new BigDecimal(Double.toString(v)); 
  BigDecimal one = new BigDecimal("1"); 
  return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 
 } 
}

以上這篇Java中BigDecimal的基本運算(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何優(yōu)雅地避免空指針異常(NullPointerException)

    Java如何優(yōu)雅地避免空指針異常(NullPointerException)

    這篇文章主要給大家介紹了關(guān)于Java如何優(yōu)雅地避免空指針異常(NullPointerException)的相關(guān)資料,空指針異常(NullPointerException)是一種常見的運行時異常,它在Java編程中經(jīng)常出現(xiàn),需要的朋友可以參考下
    2024-03-03
  • SpringBoot自定義加載yml實現(xiàn)方式,附源碼解讀

    SpringBoot自定義加載yml實現(xiàn)方式,附源碼解讀

    這篇文章主要介紹了SpringBoot自定義加載yml實現(xiàn)方式附源碼解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 解析SpringBoot @EnableAutoConfiguration的使用

    解析SpringBoot @EnableAutoConfiguration的使用

    這篇文章主要介紹了解析SpringBoot @EnableAutoConfiguration的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Springboot異常錯誤處理解決方案詳解

    Springboot異常錯誤處理解決方案詳解

    這篇文章主要介紹了Springboot異常錯誤處理解決方案詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Mybatis MapperScannerConfigurer自動掃描Mapper接口生成代理注入到Spring的方法

    Mybatis MapperScannerConfigurer自動掃描Mapper接口生成代理注入到Spring的方法

    這篇文章主要給大家介紹了關(guān)于Mybatis MapperScannerConfigurer自動掃描將Mapper接口生成代理注入到Spring的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2019-03-03
  • Java中volatile關(guān)鍵字的作用與用法詳解

    Java中volatile關(guān)鍵字的作用與用法詳解

    volatile關(guān)鍵字雖然從字面上理解起來比較簡單,但是要用好不是一件容易的事情。這篇文章主要介紹了Java中volatile關(guān)鍵字的作用與用法詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Java面向接口編程之命令模式實例詳解

    Java面向接口編程之命令模式實例詳解

    這篇文章主要介紹了Java面向接口編程之命令模式,結(jié)合實例形式詳細分析了Java面向接口編程命令模式的定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-09-09
  • java并發(fā)編程Lock鎖可重入性與公平性分析

    java并發(fā)編程Lock鎖可重入性與公平性分析

    這篇文章主要為大家介紹了java并發(fā)編程Lock鎖可重入性與公平性分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • SpringSecurity集成圖片驗證碼的詳細過程

    SpringSecurity集成圖片驗證碼的詳細過程

    SpringSecurity是通過過濾器鏈來完成的,接下來的驗證碼,可以嘗試創(chuàng)建一個過濾器放到Security的過濾器鏈中,在自定義的過濾器中比較驗證碼,本文通過實例代碼介紹SpringSecurity集成圖片驗證碼的詳細過程,感興趣的朋友一起看看吧
    2023-12-12
  • 圖文詳解Java中class的初始化順序

    圖文詳解Java中class的初始化順序

    網(wǎng)上有很多關(guān)于Java中class的初始化順序文章,但是本文通過圖文更加詳細的介紹了Java中class的初始化順序,并對class的裝載順序進行了講解,下面一起來看看。
    2016-08-08

最新評論

阳山县| 南丰县| 玛多县| 长岛县| 施秉县| 永新县| 团风县| 巴南区| 延边| 同江市| 铜陵市| 长乐市| 德州市| 台前县| 美姑县| 叙永县| 周口市| 洛南县| 新晃| 宜君县| 县级市| 牟定县| 新乡县| 嘉定区| 丰原市| 凤山县| 壤塘县| 兴国县| 民丰县| 博罗县| 客服| 法库县| 新民市| 余庆县| 滨海县| 涡阳县| 那曲县| 宿州市| 阿拉尔市| 高雄县| 临朐县|