- 相關(guān)推薦
JAVA中小數(shù)點(diǎn)后保留兩位的方法有哪些
相信大家在平時(shí)做項(xiàng)目時(shí),可能會(huì)有這樣的業(yè)務(wù)需求:頁(yè)面或界面上展示的數(shù)據(jù)保留小數(shù)點(diǎn)后兩位。 JAVA中小數(shù)點(diǎn)后保留兩位的方法有哪些?下面百分網(wǎng)小編帶大家一起來看看詳細(xì)內(nèi)容,希望對(duì)大家有所幫助!想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
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轉(zhuǎn)換最簡(jiǎn)便
*/
public void m2() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
/**
* String.format打印最簡(jiǎn)便
*/
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.輸出結(jié)果:
111231.56
111231.56
111231.56
111,231.56
這里我們提供了一個(gè)工具類,定義浮點(diǎn)數(shù)的加、減、乘、除和四舍五入等運(yùn)算方法。以供參考。
源文件MathExtend.java:
import java.math.BigDecimal;
public class MathExtend
{
//默認(rèn)除法運(yùn)算精度
private static final int DEFAULT_p_SCALE = 10;
/**
* 提供精確的加法運(yùn)算。
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的和
*/
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();
}
/**
* 提供精確的加法運(yùn)算
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)數(shù)學(xué)加和,以字符串格式返回
*/
public static String add(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.add(b2).toString();
}
/**
* 提供精確的減法運(yùn)算。
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的差
*/
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();
}
/**
* 提供精確的減法運(yùn)算
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)數(shù)學(xué)差,以字符串格式返回
*/
public static String subtract(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.subtract(b2).toString();
}
/**
* 提供精確的乘法運(yùn)算。
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的積
*/
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();
}
/**
* 提供精確的乘法運(yùn)算
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的數(shù)學(xué)積,以字符串格式返回
*/
public static String multiply(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.multiply(b2).toString();
}
/**
* 提供(相對(duì))精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到
* 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入,舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的商
*/
public static double pide(double v1, double v2)
{
return pide(v1, v2, DEFAULT_p_SCALE);
}
/**
* 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指
* 定精度,以后的數(shù)字四舍五入。舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @param scale 表示需要精確到小數(shù)點(diǎn)以后幾位。
* @return 兩個(gè)參數(shù)的商
*/
public static double pide(double v1,double v2, int scale)
{
return pide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指
* 定精度,以后的數(shù)字四舍五入。舍入模式采用用戶指定舍入模式
* @param v1
* @param v2
* @param scale 表示需要精確到小數(shù)點(diǎn)以后幾位
* @param round_mode 表示用戶指定的舍入模式
* @return 兩個(gè)參數(shù)的商
*/
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();
}
/**
* 提供(相對(duì))精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到
* 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入,舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @return 兩個(gè)參數(shù)的商,以字符串格式返回
*/
public static String pide(String v1, String v2)
{
return pide(v1, v2, DEFAULT_p_SCALE);
}
/**
* 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指
* 定精度,以后的數(shù)字四舍五入。舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @param scale 表示需要精確到小數(shù)點(diǎn)以后幾位
* @return 兩個(gè)參數(shù)的商,以字符串格式返回
*/
public static String pide(String v1, String v2, int scale)
{
return pide(v1, v2, DEFAULT_p_SCALE, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指
* 定精度,以后的數(shù)字四舍五入。舍入模式采用用戶指定舍入模式
* @param v1
* @param v2
* @param scale 表示需要精確到小數(shù)點(diǎn)以后幾位
* @param round_mode 表示用戶指定的舍入模式
* @return 兩個(gè)參數(shù)的商,以字符串格式返回
*/
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();
}
/**
* 提供精確的小數(shù)位四舍五入處理,舍入模式采用ROUND_HALF_EVEN
* @param v 需要四舍五入的數(shù)字
* @param scale 小數(shù)點(diǎn)后保留幾位
* @return 四舍五入后的結(jié)果
*/
public static double round(double v,int scale)
{
return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供精確的小數(shù)位四舍五入處理
* @param v 需要四舍五入的數(shù)字
* @param scale 小數(shù)點(diǎn)后保留幾位
* @param round_mode 指定的舍入模式
* @return 四舍五入后的結(jié)果
*/
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();
}
/**
* 提供精確的小數(shù)位四舍五入處理,舍入模式采用ROUND_HALF_EVEN
* @param v 需要四舍五入的數(shù)字
* @param scale 小數(shù)點(diǎn)后保留幾位
* @return 四舍五入后的結(jié)果,以字符串格式返回
*/
public static String round(String v, int scale)
{
return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供精確的小數(shù)位四舍五入處理
* @param v 需要四舍五入的數(shù)字
* @param scale 小數(shù)點(diǎn)后保留幾位
* @param round_mode 指定的舍入模式
* @return 四舍五入后的結(jié)果,以字符串格式返回
*/
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中小數(shù)點(diǎn)后保留兩位的方法有哪些】相關(guān)文章:
java使double類型保留兩位小數(shù)的方法09-19
Java讀取郵件的方法有哪些05-31
java寫入文件的方法有哪些10-05
JAVA中終止線程的方法有哪些07-26
java序列化的方法有哪些10-06
Java File類有哪些常用方法07-27