金额计算工具类

开发中常用工具类,总结记录一番!

提要:

        1、toEngineeringString:有必要时使用工程计数法。工程记数法是一种工程计算中经常使用的记录数字的方法,与科学技术法类似,但要求10的幂必须是3的倍数

         2、toPlainString:不使用任何指数

         3、toString:有必要时使用科学计数法

import java.math.BigDecimal;

public class DigitUtil {

	/**
	 * 金额计算,加法
	 * 
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static String add(Object obj1, Object obj2) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		return big1.add(big2).toPlainString();
	}

	/**
	 * 金额计算,除法
	 * 
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static String sub(Object obj1, Object obj2) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		return big1.subtract(big2).toPlainString();
	}

	/**
	 * 金额计算,乘法,保留所有小数位
	 * 
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static String multiply(Object obj1, Object obj2) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		return big1.multiply(big2).toPlainString();
	}

	/**
	 * 金额计算,乘法,四舍五入保留指定小数位
	 * 
	 * @param obj1
	 * @param obj2
	 * @param digit
	 *            指定保留位数
	 * @return
	 */
	public static String multiply(Object obj1, Object obj2, int digit) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		BigDecimal big3 = big1.multiply(big2).setScale(digit,
				BigDecimal.ROUND_HALF_UP);

		return big3.toPlainString();
	}

	/**
	 * 金额计算,除法,四舍五入保留指定小数位
	 * 
	 * @param obj1
	 * @param obj2
	 * @param digit
	 *            指定保留位数
	 * @return
	 */
	public static String devide(Object obj1, Object obj2, int digit) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		BigDecimal big3 = big1.divide(big2, digit, BigDecimal.ROUND_HALF_UP);
		return big3.toPlainString();
	}

	/**
	 * 金额四舍五入,保留两位小数
	 * 
	 * @param obj
	 * @return
	 */
	public static String scale(Object obj) {
		return scale(obj, 2);
	}

	/**
	 * 金额四舍五入,保留指定位小数
	 * 
	 * @param obj
	 * @param digit
	 * @return
	 */
	public static String scale(Object obj, int digit) {
		BigDecimal big = new BigDecimal(obj.toString());
		return big.setScale(digit, BigDecimal.ROUND_HALF_UP).toPlainString();
	}

	/**
	 * 金额比较
	 * 
	 * obj1 > obj2 return 1 obj1 < obj2 return -1 obj1 = obj2 return 0d
	 * 
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static int compareTo(Object obj1, Object obj2) {
		BigDecimal big1 = new BigDecimal(obj1.toString());
		BigDecimal big2 = new BigDecimal(obj2.toString());
		return big1.compareTo(big2);
	}

	/**
	 * test
	 * 
	 * @param args
	 */
	public static void main(String args[]) {
		String str1 = "100";
		String str2 = "200";
		String str3 = "200";
		String str4 = "2.34564";
		//加
		System.out.println(DigitUtil.add(str1, str2));
		//减
		System.out.println(DigitUtil.sub(str1, str2));
		//乘,保留全部小数位
		System.out.println(DigitUtil.multiply(str1, str2));
		//乘,保留两位小数
		System.out.println(DigitUtil.multiply(str1, str2, 2));
		//除
		System.out.println(DigitUtil.devide(str1, str2, 2));
		//比较大小
		System.out.println(DigitUtil.compareTo(str2, str1));
		System.out.println(DigitUtil.compareTo(str1, str2));
		System.out.println(DigitUtil.compareTo(str2, str3));
		//四舍五入
		System.out.println(DigitUtil.scale(str4));
		System.out.println(DigitUtil.scale(str4, 3));
	}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EXCEL必备工具箱是一款大部分功能免费且齐全可还能同时支持微软Office Excel和国产的金山WPS Office办公软件的excel插件工具箱,功能类似Kutools for Excel、方方格子、Excel易用宝以及ASAP Utilities这些较为知名的Excel增强插件,该excel办公自动化插件自带免费多标签(类似于OfficeTab)和导航,是拥有多达300项实用功能的excel办公自动化插件组合, EXCEL必备工具箱包含有诸如Excel打开密码破解、阴阳历转换、将选区存储为图片、工作表排序及生成目录、 人工双面打印、汉字转拼音、区域加密、个人所得税、未确认融资费用、按揭贷款/一般贷款利息、各种复利、实际利率法摊销、专业水准的套表数据汇总、穿透查询以及隐藏/取消隐藏工作表、工作表导出为文件等300多个超级实用的Excel相关功能,excel办公自动化插件还额外贴心提供了自动生成分析文档、财务比例计算等模版,帮助用户大大简化了枯燥繁杂的Excel办公操作,工作效率成倍提升 EXCEL必备工具箱安装后即可直接使用,能与excel/wps完美融为一体,并且绝大部分操作执行后可撤销操作,完美支持并智能识别32位/64位的EXCEL或WPS,并向后支持更高版本的WPS Office办公软件 ,还能自动屏蔽WPS已有重复功能,额外增加WPS专用功能,可谓是全能型excel办公自动化工具箱。 EXCEL必备工具箱(超级excel插件工具箱)特色功能简介: 1:可同时在EXCEL/WPS上完美运行,可运行于从Win95到Win10的各个windows版本(32位/64位)、可运行的EXCEL版本:微软Office 2000/2003/2007/2010/2013/2016/2019/365(32/64位)、WPS2016或WPS2019或更高版本。 2:自带多标签和导航功能,EXCEL必备工具箱自带免费多标签(类似于OfficeTab)和导航功能, 安装后就可以使用,与excel/wps完全融为一体,绝大部分操作执行后可撤销。 3:安装方便快捷,下载EXCEL必备工具箱后,按界面提示可以轻松安装,安装后打开EXCEL/WPS,启动Excel或WPS表格程序工具栏如果多出“工具箱"标签,就表明已经成功安装,以后升级时只需覆盖安装EXCEL必备工具箱,不需要先卸载工具箱旧版本。 4:每个功能都有详尽帮助,在按住Ctrl键的情况下,同时点击EXCEL必备工具箱的任意功能,都会直接打开该功能帮助网页,会详细介绍该功能的用法,并提供动画演示,凡是带窗口界面的EXCEL必备工具箱功能,都会有帮助按钮,点击后也会直接打开该功能帮助网页。 5:查找功能 快捷实用,如果你记不住EXCEL必备工具箱某个功能名称,或者找不到那个功能在哪个菜单下面;再或者你有某项需求,却不知道EXCEL必备工具箱是否有对应功能,请赶紧点击EXCEL必备工具箱主界面上的【查找功能】按钮,可以立即找到你需要的功能,并支持多关键字模糊查找。 由于wps先天不支持插件撤销事项,所以EXCEL必备工具箱的任何操作都不可以撤销,但是在Excel就可以任意撤销,此外大家还可以通过这款强大的excel插件工具箱对烦人的WPS热点弹窗功能予以彻底屏蔽哦。 EXCEL必备工具箱(excel办公自动化工具箱)各项功能详细介绍: EXCEL必备工具箱:导出图片(图形)功能,将当前文档的图片批量导出为文件(2021.9.1) EXCEL必备工具箱:统一社会信用代码校验与功能,一键校验统一社会信用代码和获取机构名称 。(2021.7.14) EXCEL必备工具箱:将有从外部引用的公式转换为值,可以标示出那些公式进行了转换。(2021.5.29) EXCEL必备工具箱:添加批注功能,为选定区域批量添加批注。(2021.5.4) EXCEL必备工具箱:统一杂乱数值功能,将五花八门诸如3.85万元,十万8千零二十,八万零二十 的杂乱数值转换成统一的数值格式,还可以用于大写金额转小写(2021.4.22) EXCEL必备工具箱:极速vlookup功能,让不会Vlookup也能按关键字进行查找替换,让几十万条类似vlookup的查找替换也不会卡死(2021.4.5) EXCEL必备工具箱:用*号掩盖字符功能,为保护用户隐私,现在电话号码,身份证号码、银行卡号展示时都需要用*号掩盖几个数字,这个功能可以一键实现,方便快捷(2021.02.13) EXCEL必备工具箱:批量读取控件值功能,本功能将文档大量的文本框之类的控件值批量读取到所在单元格的里(2021.02.13) EXCEL必备工具箱:数字与汉字互转功能,可以根据需要,将字符串的1234567890和一二三四五六七八

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值