金额转换工具类 , 元转分, 分转元
元转分 (String --- int):
分转元 (Integer --- String):
分转元(Integer --- BigDecimal):
完整代码;
点击查看代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
/**
* 金额转换
*
* @author Sappy
* @date 3/4/2023 09:50:20
*/
public class MoneyUtils {
private MoneyUtils() {
}
private static Logger logger = LoggerFactory.getLogger(MoneyUtils.class);
/**
* 元转分 (String --- int)
* @param yuan
* @return
*/
public static int yuan2Fen(String yuan) {
int value = 0;
try {
BigDecimal var1 = new BigDecimal(yuan);
BigDecimal var2 = new BigDecimal(100);
BigDecimal var3 = var1.multiply(var2);
value = Integer.parseInt(var3.stripTrailingZeros().toPlainString());
} catch (Exception e) {
logger.error("yuan2Fen ERROR!", e);
throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));
}
if (value < 0){
logger.error("yuan2Fen ERROR!");
//金额小于0 , 抛出异常
throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));
}
return value;
}
/**
* 分转元 (Integer --- String)
* @param fen
* @return
*/
public static String fen2Yuan(Integer fen) {
if (null == fen) {
return null;
}
BigDecimal var1 = new BigDecimal(fen);
BigDecimal var2 = new BigDecimal(100);
BigDecimal var3 = var1.divide(var2);
return var3.stripTrailingZeros().toPlainString();
}
/**
* 分转元(Integer --- BigDecimal)
* @param fen
* @return
*/
public static BigDecimal fen2YuanDecimal(Integer fen) {
if (null == fen) {
return null;
}
BigDecimal var1 = new BigDecimal(fen);
BigDecimal var2 = new BigDecimal(100);
BigDecimal var3 = var1.divide(var2);
return var3;
}
}