com.ideaaedi.commonds.numeral.BigDecimalUtil Maven / Gradle / Ivy
The newest version!
package com.ideaaedi.commonds.numeral;
import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* BigDecimal工具类
*
* @author JustryDeng
* @since 2019/7/29 15:37
*/
@Slf4j
public class BigDecimalUtil {
/**
* 除 (四舍五入)
*
* @param divisored
* 被除数
* @param divisor
* 除数
* @param scale
* 精度(0-保留到个位,1-保留一位小数, 2-保留两位小数)
*
* @return 结果
*/
public static String divide(Integer divisored, Integer divisor, int scale) {
BigDecimal divisoredBigDecimal = new BigDecimal(divisored);
BigDecimal divisorBigDecimal = new BigDecimal(divisor);
BigDecimal result =
divisoredBigDecimal.divide(divisorBigDecimal, scale, RoundingMode.HALF_UP);
return result.toString();
}
/**
* 除 (四舍五入)
*
* @param divisored
* 被除数
* @param divisor
* 除数
* @param scale
* 精度(0-保留到个位,1-保留一位小数, 2-保留两位小数)
*
* @return 结果
*/
public static String divide(String divisored, String divisor, int scale) {
BigDecimal divisoredBigDecimal = new BigDecimal(divisored);
BigDecimal divisorBigDecimal = new BigDecimal(divisor);
BigDecimal result =
divisoredBigDecimal.divide(divisorBigDecimal, scale, RoundingMode.HALF_UP);
return result.toString();
}
/**
* 乘 (不进行取舍)
*
* @param paramOne
* 乘数一
* @param paramTwo
* 乘数二
*
* @return 结果
*/
public static String multiply(String paramOne, String paramTwo) {
BigDecimal paramOneBigDecimal = new BigDecimal(paramOne);
BigDecimal paramTwoBigDecimal = new BigDecimal(paramTwo);
BigDecimal result = paramOneBigDecimal.multiply(paramTwoBigDecimal);
return result.toString();
}
/**
* 乘 (四舍五入)
*
* @param paramOne
* 乘数一
* @param paramTwo
* 乘数二
* @param scale
* 精度(0-保留到个位,1-保留一位小数, 2-保留两位小数)
*
* @return 结果
*/
public static String multiply(String paramOne, String paramTwo, int scale) {
BigDecimal paramOneBigDecimal = new BigDecimal(paramOne);
BigDecimal paramTwoBigDecimal = new BigDecimal(paramTwo);
BigDecimal result = paramOneBigDecimal.multiply(paramTwoBigDecimal)
.setScale(scale, RoundingMode.HALF_UP);
return result.toString();
}
/**
* 加 (四舍五入)
*
* @param paramOne
* 加数一
* @param paramTwo
* 加数二
* @param scale
* 精度(0-保留到个位,1-保留一位小数, 2-保留两位小数)
*
* @return 结果
*/
public static String add(String paramOne, String paramTwo, int scale) {
BigDecimal paramOneBigDecimal = new BigDecimal(paramOne);
BigDecimal paramTwoBigDecimal = new BigDecimal(paramTwo);
BigDecimal result = paramOneBigDecimal.add(paramTwoBigDecimal)
.setScale(scale, RoundingMode.HALF_UP);
return result.toString();
}
/**
* 减(四舍五入)
*
* @param subtracted
* 被减数
* @param subtraction
* 减数
* @param scale
* 精度(0-保留到个位,1-保留一位小数, 2-保留两位小数)
*
* @return 结果
*/
public static String minus(String subtracted, String subtraction, int scale) {
BigDecimal subtractedBigDecimal = new BigDecimal(subtracted);
BigDecimal subtractionBigDecimal = new BigDecimal(subtraction);
BigDecimal result = subtractedBigDecimal.subtract(subtractionBigDecimal)
.setScale(scale, RoundingMode.HALF_UP);
return result.toString();
}
/**
* 判断两个数是否相等
*
* @param paramOne
* 第一个参数 *
* @param paramTwo
* 第二个参数
* @return 是否相等
*/
public static boolean assertEquals(Object paramOne, Object paramTwo) {
log.info(" paramOne is -> 【{}】 \n paramTwo is -> 【{}】", paramOne, paramTwo);
BigDecimal paramOneBigDecimal = new BigDecimal(String.valueOf(paramOne));
BigDecimal paramTwoBigDecimal = new BigDecimal(String.valueOf(paramTwo));
int result = paramOneBigDecimal.compareTo(paramTwoBigDecimal);
return result == 0;
}
}