public final class NumberUtil {
private NumberUtil() {
}
/**
* <p>
* 使用 {@link NumberFormat} 的 getCurrencyInstance()
* 货币的格式化 格式[¥123,456,789.00]
*/
public static String formatCurrency(Object obj) {
if (obj == null) {
return "";
}
// format方法不能识别字符串类型
if (obj instanceof String) {
obj = new BigDecimal(String.valueOf(obj));
}
NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(Locale.CHINA);
return currencyInstance.format(obj);
}
/**
* <p>
* 使用 {@link DecimalFormat} 的 pattern
* 货币的格式化 格式[123,456,789.00]
*/
public static String formatCurrency01(Object obj) {
if (obj == null) {
return "";
}
// format方法不能识别字符串类型
if (obj instanceof String) {
obj = new BigDecimal(String.valueOf(obj));
}
NumberFormat currencyInstance = new DecimalFormat("¥,##0.00");
return currencyInstance.format(obj);
}
public static void main(String[] args) {
System.out.println(formatCurrency(null)); // 测试null
System.out.println(formatCurrency(0)); // 测试0
System.out.println(formatCurrency(123456789)); // 测试整数
System.out.println(formatCurrency(123456789.123456789)); // 测试小数
System.out.println(formatCurrency("123456789.123456789")); // 测试String
System.out.println(formatCurrency01(null)); // 测试null
System.out.println(formatCurrency01(0)); // 测试0
System.out.println(formatCurrency01(123456789)); // 测试整数
System.out.println(formatCurrency01(123456789.123456789)); // 测试小数
System.out.println(formatCurrency01("123456789.123456789")); // 测试String
}
}
java 货币格式化 精确俩位小数
最新推荐文章于 2023-05-16 10:55:51 发布