package com.icexxx.util;
import java.math.BigDecimal;
/**
* 数学工具类 主要处理大实数运算问题
*
* @author IceWater
* @date 2017-02-24
* @version 1.0
*/
public class IceMathUtil {
/**
* 两个数字相加
*
* @param num1 第一个加数
* @param num2 第二个加数
* @return 两个加数相加的和
*/
public static String add(String num1, String num2) {
BigDecimal dec1 = new BigDecimal(num1);
BigDecimal dec2 = new BigDecimal(num2);
return dec1.add(dec2).toString();
}
/**
* 两个数字想减
*
* @param num1 被减数
* @param num2 减数
* @return 两个数想减的差
*/
public static String subtract(String num1, String num2) {
BigDecimal dec1 = new BigDecimal(num1);
BigDecimal dec2 = new BigDecimal(num2);
return dec1.subtract(dec2).toString();
}
/**
* 两个数相乘的积
*
* @param num1 被乘数
* @param num2 乘数
* @return 两个数相乘的积
*/
public static String multiply(String num1, String num2) {
BigDecimal dec1 = new BigDecimal(num1);
BigDecimal dec2 = new BigDecimal(num2);
return dec1.multiply(dec2).toString();
}
/**
* 两个数相除
*
* @param num1 被除数
* @param num2 除数
* @return 两个数相除的商,保留两位小数
*/
public static String divide(String num1, String num2) {
return divide(num1, num2, 2);
}
/**
* 两个数相除
*
* @param num1 被除数
* @param num2 除数
* @param scale 商的小数位数
* @return 两个除数的商,保留若干位小数
*/
public static String divide(String num1, String num2, int scale) {
BigDecimal dec1 = new BigDecimal(num1);
BigDecimal dec2 = new BigDecimal(num2);
return dec1.divide(dec2, scale, BigDecimal.ROUND_HALF_UP).toString();
}
/**
* 求相反数
*
* @param num 原始数值
* @return 该数值的相反数
*/
public static String negate(String num) {
return new BigDecimal(num).negate().toString();
}
}
最近下载更多
最近浏览更多
3334004690 LV11
2024年5月28日
1358849392 LV21
2022年11月11日
crosa_Don LV18
2022年3月31日
zuidaima_liuzg LV1
2021年5月13日
叽哩咕噜 LV2
2020年12月24日
dongzhan LV12
2020年12月9日
wkc LV21
2020年7月26日
Gyq灬ming LV11
2019年11月30日
小资李 LV13
2019年9月17日
497100512
2019年4月27日
暂无贡献等级

