封装关于金额计算的double工具类
2024-10-21 05:43:27
由于直接使用double类型的加减乘除,可能会出现不可预测的问题,精度丢失等等。在业务中,计算金额是一件很重要的事情。
可以直接使用BigDecimal类,进行加减乘除。相关BigDecimal类介绍:https://blog.csdn.net/haiyinshushe/article/details/82721234
当然为了业务中方便使用,封装了一个工具类,如下:
import java.math.BigDecimal; public class BigDecimalUtil {
private BigDecimalUtil() {
} //加
public static BigDecimal add(double v1, double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2);
}
//减
public static BigDecimal sub(double v1, double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2);
}
//乘
public static BigDecimal mul(double v1, double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2);
}
//除
public static BigDecimal div(double v1, double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,2,BigDecimal.ROUND_HALF_UP); //四舍五入,保留两位数字
}
}
最新文章
- 使用AutoIT对增加和删除文件属性的实现
- JQmeter显示进度条
- 【C-顺序程序结构】
- For和While在C和MATLAB中的区别——MATLAB的大坑
- 用分治法实现大数乘法,加法,减法(java实现)
- linux 内核 编绎配制选项详解
- Linux命令记录
- 大到可以小说的Y组合子(三)
- Android开源client之LookAround学习(一)Application &;amp; 网络框架
- rxjava2学习笔记(1)
- js中几种实用的跨域方法原理详解【转】
- DuelJS 介绍
- Spark SQL External DataSource简介
- linux中断源码分析 - 概述(一)
- IO 和 NIO 的区别
- BZOJ4269:再见Xor(线性基)
- MFC中的Invalidate、OnDraw、OnPaint函数的作用
- bzoj 3931 最短路+最大流
- leetcode693:Binary Number with Alternating Bits
- 【POJ】1185 炮兵阵地(状压dp)