中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中BigDecimal基本運算的示例分析

發布時間:2021-08-20 09:37:06 來源:億速云 閱讀:120 作者:小新 欄目:編程語言

小編給大家分享一下Java中BigDecimal基本運算的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

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來夠造,要做一個加法運算,需要先將兩個浮點數轉為String,然后夠造成BigDecimal,在其中一個上調用add方法,傳入另一個作為參數,然后把運算的結果(BigDecimal)再轉換為浮點數。

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 被加數 
 * @param v2 加數 
 * @return 兩個參數的和 
 */ 
 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 被減數 
 * @param v2 減數 
 * @return 兩個參數的差 
 */ 
 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 被乘數 
 * @param v2 乘數 
 * @return 兩個參數的積 
 */ 
 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(); 
 } 
 
 /** 
 * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到 
 * 小數點以后10位,以后的數字四舍五入。 
 * @param v1 被除數 
 * @param v2 除數 
 * @return 兩個參數的商 
 */ 
 public static double div(double v1,double v2){ 
  return div(v1,v2,DEF_DIV_SCALE); 
 } 
 
 /** 
 * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指 
 * 定精度,以后的數字四舍五入。 
 * @param v1 被除數 
 * @param v2 除數 
 * @param scale 表示表示需要精確到小數點以后幾位。 
 * @return 兩個參數的商 
 */ 
 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(); 
 } 
 
 /** 
 * 提供精確的小數位四舍五入處理。 
 * @param v 需要四舍五入的數字 
 * @param scale 小數點后保留幾位 
 * @return 四舍五入后的結果 
 */ 
 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基本運算的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永德县| 黑龙江省| 德化县| 仁寿县| 福贡县| 昌宁县| 比如县| 堆龙德庆县| 武威市| 新余市| 阳原县| 湘潭县| 衡水市| 宁都县| 甘孜县| 九台市| 西平县| 澄城县| 两当县| 邮箱| 林口县| 汉川市| 揭东县| 麟游县| 杂多县| 兴义市| 蕉岭县| 济南市| 平湖市| 五大连池市| 阿巴嘎旗| 沿河| 栾城县| 剑河县| 鄂伦春自治旗| 平潭县| 桃园市| 绥江县| 木兰县| 久治县| 双城市|