package com.dayu.baselibrary.utils;
|
|
import android.text.TextUtils;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.DecimalFormat;
|
|
/**
|
* Copyright (C), 2022,
|
* Author: zuo
|
* Date: 2022/3/23 10:59
|
* Description:
|
*/
|
public class MornyUtil {
|
/**
|
* 元转分,确保price保留两位有效数字
|
*
|
* @return
|
*/
|
public static int changeY2F(String amount) {
|
if (TextUtils.isEmpty(amount)){
|
return 0;
|
}
|
BigDecimal bigDecimal = new BigDecimal(amount).setScale(2);
|
return bigDecimal.multiply(new BigDecimal(100)).intValue();
|
}
|
|
|
/**
|
* 元转厘,确保price保留两位有效数字
|
*
|
* @return
|
*/
|
public static int changeY2L(String amount) {
|
BigDecimal bigDecimal = new BigDecimal(amount).setScale(3);
|
return bigDecimal.multiply(new BigDecimal(1000)).intValue();
|
}
|
|
|
/**
|
* 分转元,转换为bigDecimal在toString
|
*
|
* @return
|
*/
|
public static String changeF2Y(int price) {
|
return BigDecimal.valueOf(Long.valueOf(price)).divide(new BigDecimal(100)).toString();
|
}
|
|
|
/**
|
* 精确除法,保留两位小数
|
*
|
* @param dividend
|
* @param divisor
|
* @return
|
*/
|
public static String intDiv(int dividend, int divisor) {
|
double result = (double) dividend / divisor;
|
// 使用 DecimalFormat 格式化结果,保留两位小数
|
DecimalFormat df = new DecimalFormat("#.##");
|
return df.format(result);
|
}
|
|
|
/**
|
* 系数和水价相乘获得电价保留三位小数
|
* @param num1
|
* @param num2
|
* @return
|
*/
|
public static String multiplyPrice(float num1, float num2) {
|
BigDecimal bd1 = BigDecimal.valueOf(num1);
|
BigDecimal bd2 = BigDecimal.valueOf(num2);
|
BigDecimal result = bd1.multiply(bd2);
|
return result.setScale(3, RoundingMode.HALF_UP).toString();
|
}
|
|
|
/**
|
*
|
* @param num1
|
* @param num2
|
* @return
|
*/
|
public static String sumPrice(float num1, float num2) {
|
BigDecimal bd1 = BigDecimal.valueOf(num1);
|
BigDecimal bd2 = BigDecimal.valueOf(num2);
|
BigDecimal result = bd1.add(bd2);
|
return result.setScale(2, RoundingMode.HALF_UP).toString();
|
}
|
|
|
}
|