admin 管理员组文章数量: 1086866
金钱计算法
package jiuzhi.jiuzhiyingcai.utils; import java.math.BigDecimal; import java.math.RoundingMode; public class DecimalUtil {/** * 金钱乘法 * * @param v1 * @param v2 * @return */ public static String add(String v1, String v2) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.add(b2).toString(); }/** * 金钱乘法 * * @param v1 * @param v2 * @return */ public static String multiply(String v1, String v2) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.multiply(b2).toString(); }/** * 乘法 * * @param v1 乘数 * @param v2 被乘数 * @param scale 小数点保留位数 * @return */ public static String multiplyWithScale(String v1, String v2, int scale) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); BigDecimal result = b1.multiply(b2); result = result.setScale(scale); return result.toString(); }/** * 金钱除法 * * @param v1 * @param v2 * @return */ public static String divide(String v1, String v2) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.divide(b2).toString(); }/** * 如果除不断,产生无限循环小数,那么就会抛出异常,解决方法就是对小数点后的位数做限制 * * @param v1 * @param v2 小数模式 ,DOWN,表示直接不做四舍五入,参考{@link RoundingMode} * @return */ public static String divideWithRoundingDown(String v1, String v2) {return divideWithRoundingMode(v1, v2, RoundingMode.DOWN); }/** 选择小数部分处理方式 */ public static String divideWithRoundingMode(String v1, String v2, RoundingMode roundingMode) {return divideWithRoundingModeAndScale(v1, v2, RoundingMode.DOWN, 0); }/** * 选择小数点后部分处理方式,以及保留几位小数 * * @param v1 除数 * @param v2 被除数 * @param roundingMode 小数处理模式 * @param scale 保留几位 * @return */ public static String divideWithRoundingModeAndScale(String v1, String v2, RoundingMode roundingMode, int scale) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.divide(b2, scale, roundingMode).toString(); }/** * 金钱减法 * * @param v1 * @param v2 * @return */ public static String subtract(String v1, String v2) {BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.subtract(b2).toString(); }}
转载于:
本文标签: 金钱计算法
版权声明:本文标题:金钱计算法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1688026787a170388.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论