经常需要格式化double类型、指数形式输出等,可以参考下面
DecimalFormat 的使用方法
package taoke.util; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; /** * 数字格式化工具类 * 类名称:NumberUtil.java * 类描述: 取小数几位、%显示数字 * 创建时间:2014-12-1 * 修改备注: * @version 1.0 */ public class NumberUtil { private static String fomart(final double num,String format){ DecimalFormat df=new DecimalFormat(format); return df.format(num); } /** * 格式化 * @param num 传入的数字 * @param format 格式化: ##.00 {#一个数字不包括0,0一个数组包括0} * @returnv 返回字符串 */ public static String formatDouble(final double num,String format){ return fomart(num,format); } /** * 格式化为2位小数 * @param num * @param format * @return */ public static String formatDouble2(final double num){ return fomart(num,"##.00"); } /** * 根据区域进行格式化数字,用于国际化显示 * @param num * @param format * @param locale * @return */ public static String formatDouble(final double num,String format,Locale locale){ DecimalFormat df = (DecimalFormat)NumberFormat.getInstance(locale); df.applyLocalizedPattern(format); return df.format(num); } //测试 public static void main(String[] args) { System.out.println(formatDouble2(12.345)); //12.34 System.out.println(formatDouble(02.30,"#.##")); //2.3 System.out.println(fomart(1234.56789, "##.00E000"));//12.35E002 System.out.println(formatDouble(1234.56789, "####.0000", Locale.GERMAN)); //1235 } }