JAVA中将给定的数字按给定的形式输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38789941/article/details/81127129

在项目中将金额每隔3位加一个","格式输出

/**
	 * 
	 * 将给定的数字按给定的形式输出
	 * 
	 * @param d
	 *            double
	 * 
	 * @param pattern
	 *            String
	 * 
	 *            #:表示有数字则输出数字,没有则空,如果输出位数多于#的位数,
	 * 
	 *            则超长输入
	 * 
	 *            0:有数字则输出数字,没有补0
	 * 
	 *            对于小数,有几个#或0,就保留几位的小数;
	 * 
	 *            例如: "###.00" -->表示输出的数值保留两位小数,不足两位的
	 * 
	 *            补0,多于两位的四舍五入
	 * 
	 *            "###.0#" -->表示输出的数值可以保留一位或两位小数;
	 * 
	 *            整数显示为有一位小数,一位或两位小数
	 * 
	 *            的按原样显示,多于两位的四舍五入;
	 * 
	 *            "###" --->表示为整数,小数部分四舍五入
	 * 
	 *            ".###" -->12.234显示为.234
	 * 
	 *            "#,###.0#" -->表示整数每隔3位加一个",";
	 * 
	 * @param l
	 *            Locale
	 * 
	 * @return String
	 * 
	 */
	public static String formatNumber(double d, String pattern, Locale l) {
		if (d == 0) {
			return "0.00";
		}
		String s = "0.00";
		try {

			DecimalFormat nf = (DecimalFormat) NumberFormat.getInstance(l);
			nf.applyPattern(pattern);
			s = nf.format(d);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return s;
	}

	/**
	 * 将数字转换成金额样式
	 * 
	 * @param d
	 *            数字
	 * @return 统一样式,例如11,111.12
	 */
	public static String formatNumberSimple(double d) {
		return formatNumber(d, "#,###.00", Locale.SIMPLIFIED_CHINESE);
	}

猜你喜欢

转载自blog.csdn.net/qq_38789941/article/details/81127129