金额相关的操作

package com.chb.abc.util;

import java.math.BigDecimal;

import org.apache.commons.lang.StringUtils;

public class AmountUtil {
	 /**金额为分的格式 */    
    public static final String CURRENCY_FEN_REGEX = "\\-?[0-9]+"; 
      
	/**
	 * 格式化为金额0.00格式
	 * 
	 * @param amount
	 *            金额单位:分
	 * @return
	 */
	public static String formatFen2Yuan(long amount) {
		return new BigDecimal(amount).divide(new BigDecimal(100), 2,
				BigDecimal.ROUND_HALF_UP).toString();
	}
	
	/**
	 * 将分格式为元,可以指定小数点后几位
	 */
	public static String formatFen2Yuan(long amount, int n) {
		return new BigDecimal(amount).divide(new BigDecimal(100), n,
				BigDecimal.ROUND_HALF_UP).toString();
	}
	
	public static String formatFen2Yuan(float amount, int n) {
		return new BigDecimal(amount).divide(new BigDecimal(100), n,
				BigDecimal.ROUND_HALF_UP).toString();
	}
	
	public static String formatFen1Yuan(long amount, int n) {
		return new BigDecimal(amount).divide(new BigDecimal(1), n,
				BigDecimal.ROUND_HALF_UP).toString();
	}

	/**
	 * 格式化为金额0.00格式
	 * 
	 * @param amount
	 *            金额单位:厘
	 * @return
	 * 
	 */
	public static String formatLi2Yuan(long amount) {
		return new BigDecimal(amount).divide(new BigDecimal(1000), 2,
				BigDecimal.ROUND_HALF_UP).toString();
	}

	/**
	 * 格式化为金额0.00格式
	 * 
	 * @param amount
	 *            金额单位:分
	 * @return
	 * 
	 */
	public static String formatFen2Yuan(String amount) {
		return new BigDecimal(amount).divide(new BigDecimal(100), 2,
				BigDecimal.ROUND_HALF_UP).toString();
	}

	/**
	 * 格式化为金额0.00格式
	 * 
	 * @param amount
	 *            金额单位:厘
	 * @return
	 * 
	 */
	public static String formatLi2Yuan(String amount) {
		return new BigDecimal(amount).divide(new BigDecimal(1000), 2,
				BigDecimal.ROUND_HALF_UP).toString();
	}
	/**
	 * 讲金额由分 转换为 厘
	 * 
	 * @param amount		金额单位:分
	 * 
	 * @return				单位: 厘
	 * @author yanrg
	 */
	public static long formatFen2Li(long amount)throws Exception{
		return amount * 10;
	}
	
	/**
	 * 将金额由 元 转换为 分
	 * 
	 * @param amount
	 *            金额单位:元
	 * @return	单位: 分
	 * 
	 */
	public static String formatYuan2Fen(String amount) {
		String money=new BigDecimal(amount).multiply(new BigDecimal(100)).toString();
		return StringUtils.substringBefore(money, ".");
	}
	
	/**
	 * 讲金额由 厘 转换为 分
	 * 
	 * @param amount		金额单位:厘
	 * 
	 * @return				单位: 分
	 * @author yanrg
	 */
	public static long formatLi2Fen(long amount)throws Exception{
		return new BigDecimal(amount).divide(new BigDecimal(10), 0,
				BigDecimal.ROUND_HALF_UP).longValue();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值