欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot2.0集成WebSocket實現(xiàn)后臺向前端推送信息

    SpringBoot2.0集成WebSocket實現(xiàn)后臺向前端推送信息

    這篇文章主要介紹了SpringBoot2.0集成WebSocket實現(xiàn)后臺向前端推送信息,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • MAC配置java+jmeter環(huán)境變量過程解析

    MAC配置java+jmeter環(huán)境變量過程解析

    這篇文章主要介紹了MAC配置java+jmeter環(huán)境變量過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Java面試題沖刺第十四天--PRC框架

    Java面試題沖刺第十四天--PRC框架

    這篇文章主要為大家分享了最有價值的三道關于PRC框架的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java Swing實現(xiàn)簡單的體重指數(shù)(BMI)計算器功能示例

    Java Swing實現(xiàn)簡單的體重指數(shù)(BMI)計算器功能示例

    這篇文章主要介紹了Java Swing實現(xiàn)簡單的體重指數(shù)(BMI)計算器功能,涉及Java Swing窗口組件布局、響應及數(shù)值運算相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • java實現(xiàn)Floyd算法

    java實現(xiàn)Floyd算法

    這篇文章主要為大家詳細介紹了java實現(xiàn)Floyd算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JAVA遍歷一個文件夾中的所有文件的小例子

    JAVA遍歷一個文件夾中的所有文件的小例子

    在實際項目中給定一文件夾,得到這個文件夾下所有的文件這樣的需求并不是很多,更多的是查找或是刪除某一具體的文件
    2013-10-10
  • SpringBoot項目如何訪問jsp頁面的示例代碼

    SpringBoot項目如何訪問jsp頁面的示例代碼

    本篇文章主要介紹了SpringBoot項目如何訪問jsp頁面的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • JavaWeb監(jiān)聽器Listener實例解析

    JavaWeb監(jiān)聽器Listener實例解析

    這篇文章主要為大家詳細介紹了JavaWeb監(jiān)聽器Listener實例,針對監(jiān)聽器進行進行細致分析,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java8 Optional判空詳解(簡化判空操作)

    Java8 Optional判空詳解(簡化判空操作)

    這篇文章主要給大家介紹了關于Java8 Optional判空(簡化判空操作)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java設計模式之原型模式詳細解析

    Java設計模式之原型模式詳細解析

    這篇文章主要介紹了Java設計模式之原型模式詳細解析,原型模式就是用一個已經(jīng)創(chuàng)建的實例作為原型,通過復制該原型對象來創(chuàng)建一個和原型對象相同的新對象,需要的朋友可以參考下
    2023-11-11

最新評論