概述
package ext.util;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Objects;
public class NumEval<T extends Number> {
private BigDecimal total;
private NumEval(T value) {
total = toBigDecimal(value);
}
private BigDecimal toBigDecimal(T value) {
if (Objects.isNull(value)) {
return BigDecimal.ZERO;
}
return new BigDecimal(value.toString());
}
public BigDecimal value() {
return total;
}
public static NumEval init(Number value) {
return new NumEval(value);
}
public NumEval add(T value) {
if (Objects.nonNull(value)) {
total = total.add(toBigDecimal(value));
}
return this;
}
public NumEval subtract(T value) {
if (Objects.nonNull(value)) {
total = total.subtract(toBigDecimal(value));
}
return this;
}
public NumEval multiply(T value) {
if (Objects.nonNull(value)) {
total = total.multiply(toBigDecimal(value));
}
return this;
}
public NumEval divide(T value) {
return divide(value, 10);
}
public NumEval divide(T value, int scale) {
if (Objects.nonNull(value)) {
total = total.divide(toBigDecimal(value), scale, RoundingMode.HALF_UP);
}
return this;
}
public NumEval setScale(int scale) {
total = total.setScale(scale, RoundingMode.HALF_UP);
return this;
}
public static void main(String[] args) {
BigDecimal value = NumEval.init(0.35).
add(3.908).
add(BigDecimal.valueOf(3.3333)).
add(Double.valueOf(0.00003)).
add(Integer.valueOf(1)).
add(null).
subtract(2.098).
multiply(3.4537338474744889).
divide(0.3, 35).
divide(0.3333).
setScale(3).
value();
System.out.println(value);
}
}
最后
以上就是震动芹菜为你收集整理的BigDecimal链式数学计算的全部内容,希望文章能够帮你解决BigDecimal链式数学计算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复