<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      「Java工具類」java算數計算工具類,BigDecimal封裝計算,精確位數,收藏備用

      java中經常需要進行算術運算,搞了一個工具類,再也不會被項目經理說小數點問題了。歡迎收藏備用!

       

      工具類源碼:

      import java.math.BigDecimal;
      
      /**
       * 用于高精確處理常用的數學運算
       *
       * @author liangxn
       */
      public class ArithmeticUtils {
          //默認除法運算精度
          private static final int DEF_DIV_SCALE = 10;
      
          /**
           * 提供精確的加法運算
           *
           * @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 BigDecimal add(String v1, String v2) {
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.add(b2);
          }
      
          /**
           * 提供精確的加法運算
           *
           * @param v1    被加數
           * @param v2    加數
           * @param scale 保留scale 位小數
           * @return 兩個參數的和
           */
          public static String add(String v1, String v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.add(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 提供精確的減法運算
           *
           * @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 BigDecimal sub(String v1, String v2) {
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.subtract(b2);
          }
      
          /**
           * 提供精確的減法運算
           *
           * @param v1    被減數
           * @param v2    減數
           * @param scale 保留scale 位小數
           * @return 兩個參數的差
           */
          public static String sub(String v1, String v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.subtract(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 提供精確的乘法運算
           *
           * @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();
          }
      
          /**
           * 提供精確的乘法運算
           *
           * @param v1 被乘數
           * @param v2 乘數
           * @return 兩個參數的積
           */
          public static BigDecimal mul(String v1, String v2) {
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.multiply(b2);
          }
      
          /**
           * 提供精確的乘法運算
           *
           * @param v1    被乘數
           * @param v2    乘數
           * @param scale 保留scale 位小數
           * @return 兩個參數的積
           */
          public static double mul(double v1, double v2, int scale) {
              BigDecimal b1 = new BigDecimal(Double.toString(v1));
              BigDecimal b2 = new BigDecimal(Double.toString(v2));
              return round(b1.multiply(b2).doubleValue(), scale);
          }
      
          /**
           * 提供精確的乘法運算
           *
           * @param v1    被乘數
           * @param v2    乘數
           * @param scale 保留scale 位小數
           * @return 兩個參數的積
           */
          public static String mul(String v1, String v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到
           * 小數點以后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();
          }
      
          /**
           * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指
           * 定精度,以后的數字四舍五入
           *
           * @param v1    被除數
           * @param v2    除數
           * @param scale 表示需要精確到小數點以后幾位
           * @return 兩個參數的商
           */
          public static String div(String v1, String v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException("The scale must be a positive integer or zero");
              }
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 提供精確的小數位四舍五入處理
           *
           * @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));
              return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
          }
      
          /**
           * 提供精確的小數位四舍五入處理
           *
           * @param v     需要四舍五入的數字
           * @param scale 小數點后保留幾位
           * @return 四舍五入后的結果
           */
          public static String round(String v, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              BigDecimal b = new BigDecimal(v);
              return b.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 取余數
           *
           * @param v1    被除數
           * @param v2    除數
           * @param scale 小數點后保留幾位
           * @return 余數
           */
          public static String remainder(String v1, String v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
          }
      
          /**
           * 取余數  BigDecimal
           *
           * @param v1    被除數
           * @param v2    除數
           * @param scale 小數點后保留幾位
           * @return 余數
           */
          public static BigDecimal remainder(BigDecimal v1, BigDecimal v2, int scale) {
              if (scale < 0) {
                  throw new IllegalArgumentException(
                          "The scale must be a positive integer or zero");
              }
              return v1.remainder(v2).setScale(scale, BigDecimal.ROUND_HALF_UP);
          }
      
          /**
           * 比較大小
           *
           * @param v1 被比較數
           * @param v2 比較數
           * @return 如果v1 大于v2 則 返回true 否則false
           */
          public static boolean compare(String v1, String v2) {
              BigDecimal b1 = new BigDecimal(v1);
              BigDecimal b2 = new BigDecimal(v2);
              int bj = b1.compareTo(b2);
              boolean res;
              if (bj > 0) {
                  res = true;
              } else {
                  res = false;
              }
              return res;
          }
      }

      本博客主要是Java常用關鍵技術點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術分享;datax、kafka、flink等大數據處理框架的技術分享。文章會不斷更新,歡迎碼友關注點贊收藏轉發!

      關注多的話,后面會錄制一些視頻教程,圖文和視頻結合,比如:圖書介紹網站系統、搶購系統、大數據中臺系統等。技術才是程序猿的最愛,碼友們沖啊

       
       ?

      posted @ 2021-10-26 23:07  Java夜未眠  閱讀(116)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产日韩久久免费影院| 国精品午夜福利视频| 偷看少妇自慰xxxx| 亚洲AV无码不卡在线播放| 国产无遮挡真人免费视频| 忘忧草在线社区www中国中文| 国产成人亚洲欧美二区综合| 久久亚洲av综合悠悠色| 好男人视频在线播放| 99精品热在线在线观看视| 久久综合九色综合久桃花| 无遮无挡爽爽免费视频| 131mm少妇做爰视频| 国产亚洲精品超碰热| 日韩精品一二区在线观看| 天美传媒mv免费观看完整| 亚洲男人AV天堂午夜在| 久久国产乱子精品免费女| 又爽又黄又无遮挡的视频| 四虎精品国产精品亚洲精| 国产一区二区三区av在线无码观看| 玉龙| 国产成人免费午夜在线观看| 亚洲人成网站观看在线观看| 国产三级精品片| 亚洲黄色一级片在线观看| 18成禁人视频免费| 国产成人无码av大片大片在线观看| 国产成人啪精品视频免费APP| 激情综合色综合啪啪开心| 综合久青草视频在线观看| 日本免费观看mv免费版视频网站| 国产尤物精品自在拍视频首页| 日韩中文字幕人妻精品| 赞皇县| 国产成人亚洲老熟女精品| 潮喷无码正在播放| 国产亚洲一级特黄大片在线| 色欲综合久久中文字幕网| 国产亚洲AV电影院之毛片| 亚洲国产av区一区二|