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();
}
}