<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    JAVA中小數點后保留兩位的方法有哪些

    時間:2025-05-30 15:25:40 java語言 我要投稿
    • 相關推薦

    JAVA中小數點后保留兩位的方法有哪些

      相信大家在平時做項目時,可能會有這樣的業務需求:頁面或界面上展示的數據保留小數點后兩位。 JAVA中小數點后保留兩位的方法有哪些?下面百分網小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

      1.代碼:

      import java.math.BigDecimal;

      import java.text.DecimalFormat;

      import java.text.NumberFormat;

      public class format {

      double f = 111231.5585;

      public void m1() {

      BigDecimal bg = new BigDecimal(f);

      double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

      System.out.println(f1);

      }

      /**

      * DecimalFormat轉換最簡便

      */

      public void m2() {

      DecimalFormat df = new DecimalFormat("#.00");

      System.out.println(df.format(f));

      }

      /**

      * String.format打印最簡便

      */

      public void m3() {

      System.out.println(String.format("%.2f", f));

      }

      public void m4() {

      NumberFormat nf = NumberFormat.getNumberInstance();

      nf.setMaximumFractionDigits(2);

      System.out.println(nf.format(f));

      }

      public static void main(String[] args) {

      format f = new format();

      f.m1();

      f.m2();

      f.m3();

      f.m4();

      }

      }

      2.輸出結果:

      111231.56

      111231.56

      111231.56

      111,231.56

      這里我們提供了一個工具類,定義浮點數的加、減、乘、除和四舍五入等運算方法。以供參考。

      源文件MathExtend.java:

      import java.math.BigDecimal;

      public class MathExtend

      {

      //默認除法運算精度

      private static final int DEFAULT_p_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 String add(String v1, String v2)

      {

      BigDecimal b1 = new BigDecimal(v1);

      BigDecimal b2 = new BigDecimal(v2);

      return b1.add(b2).toString();

      }

      /**

      * 提供精確的減法運算。

      * @param v1

      * @param v2

      * @return 兩個參數的差

      */

      public static double subtract(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 String subtract(String v1, String v2)

      {

      BigDecimal b1 = new BigDecimal(v1);

      BigDecimal b2 = new BigDecimal(v2);

      return b1.subtract(b2).toString();

      }

      /**

      * 提供精確的乘法運算。

      * @param v1

      * @param v2

      * @return 兩個參數的積

      */

      public static double multiply(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 String multiply(String v1, String v2)

      {

      BigDecimal b1 = new BigDecimal(v1);

      BigDecimal b2 = new BigDecimal(v2);

      return b1.multiply(b2).toString();

      }

      /**

      * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到

      * 小數點以后10位,以后的數字四舍五入,舍入模式采用ROUND_HALF_EVEN

      * @param v1

      * @param v2

      * @return 兩個參數的商

      */

      public static double pide(double v1, double v2)

      {

      return pide(v1, v2, DEFAULT_p_SCALE);

      }

      /**

      * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指

      * 定精度,以后的數字四舍五入。舍入模式采用ROUND_HALF_EVEN

      * @param v1

      * @param v2

      * @param scale 表示需要精確到小數點以后幾位。

      * @return 兩個參數的商

      */

      public static double pide(double v1,double v2, int scale)

      {

      return pide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN);

      }

      /**

      * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指

      * 定精度,以后的數字四舍五入。舍入模式采用用戶指定舍入模式

      * @param v1

      * @param v2

      * @param scale 表示需要精確到小數點以后幾位

      * @param round_mode 表示用戶指定的舍入模式

      * @return 兩個參數的商

      */

      public static double pide(double v1,double v2,int scale, int round_mode){

      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.pide(b2, scale, round_mode).doubleValue();

      }

      /**

      * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到

      * 小數點以后10位,以后的數字四舍五入,舍入模式采用ROUND_HALF_EVEN

      * @param v1

      * @param v2

      * @return 兩個參數的商,以字符串格式返回

      */

      public static String pide(String v1, String v2)

      {

      return pide(v1, v2, DEFAULT_p_SCALE);

      }

      /**

      * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指

      * 定精度,以后的數字四舍五入。舍入模式采用ROUND_HALF_EVEN

      * @param v1

      * @param v2

      * @param scale 表示需要精確到小數點以后幾位

      * @return 兩個參數的商,以字符串格式返回

      */

      public static String pide(String v1, String v2, int scale)

      {

      return pide(v1, v2, DEFAULT_p_SCALE, BigDecimal.ROUND_HALF_EVEN);

      }

      /**

      * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指

      * 定精度,以后的數字四舍五入。舍入模式采用用戶指定舍入模式

      * @param v1

      * @param v2

      * @param scale 表示需要精確到小數點以后幾位

      * @param round_mode 表示用戶指定的舍入模式

      * @return 兩個參數的商,以字符串格式返回

      */

      public static String pide(String v1, String v2, int scale, int round_mode)

      {

      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.pide(b2, scale, round_mode).toString();

      }

      /**

      * 提供精確的小數位四舍五入處理,舍入模式采用ROUND_HALF_EVEN

      * @param v 需要四舍五入的數字

      * @param scale 小數點后保留幾位

      * @return 四舍五入后的結果

      */

      public static double round(double v,int scale)

      {

      return round(v, scale, BigDecimal.ROUND_HALF_EVEN);

      }

      /**

      * 提供精確的小數位四舍五入處理

      * @param v 需要四舍五入的數字

      * @param scale 小數點后保留幾位

      * @param round_mode 指定的舍入模式

      * @return 四舍五入后的結果

      */

      public static double round(double v, int scale, int round_mode)

      {

      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, round_mode).doubleValue();

      }

      /**

      * 提供精確的小數位四舍五入處理,舍入模式采用ROUND_HALF_EVEN

      * @param v 需要四舍五入的數字

      * @param scale 小數點后保留幾位

      * @return 四舍五入后的結果,以字符串格式返回

      */

      public static String round(String v, int scale)

      {

      return round(v, scale, BigDecimal.ROUND_HALF_EVEN);

      }

      /**

      * 提供精確的小數位四舍五入處理

      * @param v 需要四舍五入的數字

      * @param scale 小數點后保留幾位

      * @param round_mode 指定的舍入模式

      * @return 四舍五入后的結果,以字符串格式返回

      */

      public static String round(String v, int scale, int round_mode)

      {

      if(scale<0)

      {

      throw new IllegalArgumentException("The scale must be a positive integer or zero");

      }

      BigDecimal b = new BigDecimal(v);

      return b.setScale(scale, round_mode).toString();

      }

      }

    【JAVA中小數點后保留兩位的方法有哪些】相關文章:

    java使double類型保留兩位小數的方法09-19

    學習java的方法有哪些07-01

    Java讀取郵件的方法有哪些05-31

    java寫入文件的方法有哪些10-05

    JAVA中終止線程的方法有哪些07-26

    java序列化的方法有哪些10-06

    Java File類有哪些常用方法07-27

    Java編程節省內存的方法有哪些08-10

    java輸入數據流的方法有哪些06-04

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人