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

來源:文萃谷 1.11W

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

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

  1.代碼:

import ecimal;

import malFormat;

import erFormat;

public class format {

double f = 111231.5585;

public void m1() {

BigDecimal bg = new BigDecimal(f);

double f1 = cale(2, D_HALF_UP)leValue();

tln(f1);

}

/**

* DecimalFormat轉換最簡便

*/

public void m2() {

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

tln(at(f));

}

/**

* at打印最簡便

*/

public void m3() {

tln(at("%.2f", f));

}

public void m4() {

NumberFormat nf = umberInstance();

aximumFractionDigits(2);

tln(at(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

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

  源文件:

import ecimal;

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(ring(v1));

BigDecimal b2 = new BigDecimal(ring(v2));

return (b2)leValue();

}

/**

* 提供精確的加法運算

* @param v1

* @param v2

* @return 兩個參數數學加和,以字符串格式返回

*/

public static String add(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return (b2)ring();

}

/**

* 提供精確的減法運算。

* @param v1

* @param v2

* @return 兩個參數的差

*/

public static double subtract(double v1, double v2)

{

BigDecimal b1 = new BigDecimal(ring(v1));

BigDecimal b2 = new BigDecimal(ring(v2));

return ract(b2)leValue();

}

/**

* 提供精確的減法運算

* @param v1

* @param v2

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

*/

public static String subtract(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return ract(b2)ring();

}

/**

* 提供精確的乘法運算。

* @param v1

* @param v2

* @return 兩個參數的積

*/

public static double multiply(double v1, double v2)

{

BigDecimal b1 = new BigDecimal(ring(v1));

BigDecimal b2 = new BigDecimal(ring(v2));

return iply(b2)leValue();

}

/**

* 提供精確的乘法運算

* @param v1

* @param v2

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

*/

public static String multiply(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return iply(b2)ring();

}

/**

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

* 小數點以後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, D_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(ring(v1));

BigDecimal b2 = new BigDecimal(ring(v2));

return (b2, scale, round_mode)leValue();

}

/**

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

* 小數點以後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, D_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 (b2, scale, round_mode)ring();

}

/**

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

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

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

* @return 四捨五入後的結果

*/

public static double round(double v,int scale)

{

return round(v, scale, D_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(ring(v));

return cale(scale, round_mode)leValue();

}

/**

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

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

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

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

*/

public static String round(String v, int scale)

{

return round(v, scale, D_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 cale(scale, round_mode)ring();

}

}

熱門標籤