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

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

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

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

第一種: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來夠造,要做一個(gè)加法運(yùn)算,需要先將兩個(gè)浮點(diǎn)數(shù)轉(zhuǎn)為String,然后夠造成BigDecimal,在其中一個(gè)上調(diào)用add方法,傳入另一個(gè)作為參數(shù),然后把運(yùn)算的結(jié)果(BigDecimal)再轉(zhuǎn)換為浮點(diǎ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; //這個(gè)類不能實(shí)例化 
 
 private Arith(){ 
  
 } 
 
 /** 
 * 提供精確的加法運(yùn)算。 
 * @param v1 被加數(shù) 
 * @param v2 加數(shù) 
 * @return 兩個(gè)參數(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(); 
 } 
 
 /** 
 * 提供精確的減法運(yùn)算。 
 * @param v1 被減數(shù) 
 * @param v2 減數(shù) 
 * @return 兩個(gè)參數(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(); 
 } 
 
 /** 
 * 提供精確的乘法運(yùn)算。 
 * @param v1 被乘數(shù) 
 * @param v2 乘數(shù) 
 * @return 兩個(gè)參數(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(); 
 } 
 
 /** 
 * 提供(相對)精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到 
 * 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入。 
 * @param v1 被除數(shù) 
 * @param v2 除數(shù) 
 * @return 兩個(gè)參數(shù)的商 
 */ 
 public static double div(double v1,double v2){ 
  return div(v1,v2,DEF_DIV_SCALE); 
 } 
 
 /** 
 * 提供(相對)精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指 
 * 定精度,以后的數(shù)字四舍五入。 
 * @param v1 被除數(shù) 
 * @param v2 除數(shù) 
 * @param scale 表示表示需要精確到小數(shù)點(diǎn)以后幾位。 
 * @return 兩個(gè)參數(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ù)點(diǎn)后保留幾位 
 * @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的基本運(yùn)算(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

    解析SpringBoot @EnableAutoConfiguration的使用

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

    Springboot異常錯(cuò)誤處理解決方案詳解

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

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

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

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

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

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

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

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

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

    SpringSecurity集成圖片驗(yàn)證碼的詳細(xì)過程

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

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

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

最新評論

仁化县| 和田市| 株洲县| 宿松县| 微山县| 荣昌县| 都江堰市| 丰顺县| 灵台县| 卢龙县| 宁波市| 枣庄市| 阿勒泰市| 洪江市| 水富县| 温泉县| 若尔盖县| 射阳县| 虹口区| 岚皋县| 深州市| 临沭县| 景谷| 城步| 嘉兴市| 襄城县| 霞浦县| 定日县| 左权县| 高邮市| 湖南省| 武宁县| 镇江市| 安图县| 建水县| 潜江市| 荥阳市| 大安市| 托克逊县| 阿勒泰市| 炉霍县|