1、使用java.math.BigDecimal实现
2、使用java.text.DecimalFormat实现
3、使用java.text.NumberFormat实现
4、使用java.util.Formatter实现
5、使用String.format实现
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Formatter;
public class Decimals {
// 使用java.math.BigDecimal
public static String format1(double value) {
BigDecimal bigDecimal = new BigDecimal(value);
bigDecimal = bigDecimal.setScale(2, RoundingMode.HALF_UP);
return bigDecimal.toString();
}
// 使用java.text.DecimalFormat
public static String format2(double value) {
DecimalFormat decimalFormat = new DecimalFormat("0.00");
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
return decimalFormat.format(value);
}
// 使用java.text.NumberFormat
public static String format3(double value) {
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(2);
numberFormat.setRoundingMode(RoundingMode.HALF_UP);
numberFormat.setGroupingUsed(false);
return numberFormat.format(value);
}
// 使用java.util.Formatter
public static String format4(double value) {
String str;
Formatter formatter = new Formatter();
str = formatter.format("%.2f", value).toString();
formatter.close();
return str;
}
// 使用String.format
public static String format5(double value) {
return String.format("%.2f", value);
}
public static void main(String[] args) {
double a = 12345.6789;
System.out.println("使用java.math.BigDecimal的结果为:" + Decimals.format1(a));
System.out.println("使用java.text.DecimalFormat的结果为:"+ Decimals.format2(a));
System.out.println("使用java.text.NumberFormat的结果为:"+ Decimals.format3(a));
System.out.println("使用java.util.Formatter的结果为:" + Decimals.format4(a));
System.out.println("使用String.format的结果为:" + Decimals.format5(a));
}
}
输出的结果为:
使用java.math.BigDecimal的结果为:12345.68
使用java.text.DecimalFormat的结果为:12345.68
使用java.text.NumberFormat的结果为:12345.68
使用java.util.Formatter的结果为:12345.68
使用String.format的结果为:12345.68