元转分
public static int changeY2F(String amount) {
BigDecimal bigDecimal = new BigDecimal(amount).setScale(2); //保留两位小数
return bigDecimal.multiply(new BigDecimal(100)).intValue();
}
上面这种方式如果是传的小数点后三位,比如0.006这样的数字,那么就会报错,解决的方式:
第一种:采用四舍五入的方式
/**
* newScale 保留的小数位;
* roundingMode 进位模式;
* @see #ROUND_UP
* @see #ROUND_DOWN
* @see #ROUND_CEILING
* @see #ROUND_FLOOR
* @see #ROUND_HALF_UP
* @see #ROUND_HALF_DOWN
* @see #ROUND_HALF_EVEN
* @see #ROUND_UNNECESSARY
*/
public BigDecimal setScale(int newScale, int roundingMode) {
}
第二种:直接保留两位小数
int B = new BigDecimal("0.0006").multiply(new BigDecimal(100)).intValue();
System.out.println(B);
分转元
public static String changeF2Y(int price) {
return BigDecimal.valueOf(Long.valueOf(price)).divide(new BigDecimal(100)).toString();
}
金额加逗号
public static String getMoneyNumber(double inNumb){
DecimalFormat decimalFormat = new DecimalFormat("###,###.00");
return decimalFormat.format(inNumb);
}
举个例子:
String str ="9000000";
BigDecimal b = new BigDecimal(str);
DecimalFormat df = new DecimalFormat("###,###.00");
String format = df.format(b);
System.out.println(format);