首页>代码>java常用工具类iceroot开源类库>/iceroot/src/main/java/com/icexxx/util/IceMathUtil.java
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();
	}
}
最近下载更多
TE6688  LV24 2017年6月27日
1040287230  LV4 2017年5月10日
zyl  LV34 2017年5月10日
kong.yee  LV40 2017年5月6日
xdd211414  LV17 2017年5月5日
zhljava  LV2 2017年5月5日
aihui523  LV34 2017年5月5日
海盗来了  LV20 2017年5月5日
最代码官方  LV167 2017年5月4日
最近浏览更多
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日
暂无贡献等级
哈哈zr  LV11 2019年4月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友