前言
在实际开发中,遇到例如货币,统计等商业计算的时候,一般需要采用java.math.BigDecimal类来进行精确计算。而这类操作通常都是可预知的,也就是通用的。所以,写了个工具类来方便以后的工作。
这是仓库地址:仓库地址
BigDecimal的构建
一般而言,我们主要从int,long,double,float来进行计算,在构建的时候推荐使用
BigDecimal BigDecimal(String s);
因为通过double构造会损失精度,而String构造是固定的值。
创建以下方法作为通用BigDecimal转化器:
/**
* Number -> BigDecimal
*/
public static BigDecimal transform(T v) {
if (v instanceof Double) {
return new BigDecimal(Double.toString((Double) v));
} else if (v instanceof Integer) {
return new BigDecimal(Integer.toString((Integer) v));
} else if (v instanceof Long) {
return new BigDecimal(Long.toString((Long) v));
} else if (v instanceof Short) {
return new BigDecimal(Short.toString((Short) v));