package com.nightglow.build.util;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class NumberLearn {
public static boolean compareNum(Double numA, Double numB, Double epsilon) {
return Math.abs(numA - numB) <= epsilon;
}
public static boolean compareNum(BigDecimal numA, BigDecimal numB, int scale, RoundingMode roundingMode) {
return numA.setScale(scale, roundingMode).equals(numB.setScale(scale, roundingMode));
}
public static void main(String[] args) {
Double epsilon = 1e-5;
Double doubleA = 123.45678;
Double doubleB = 123.45679;
Double doubleC = 123.456781;
System.out.println(compareNum(doubleA, doubleB, epsilon));
System.out.println(compareNum(doubleA, doubleC, epsilon));
int scale = 4;
RoundingMode roundingMode = RoundingMode.HALF_UP;
BigDecimal bigDecimalA = new BigDecimal(doubleA);
BigDecimal bigDecimalB = new BigDecimal(doubleB);
BigDecimal bigDecimalC = new BigDecimal(doubleC);
System.out.println(compareNum(bigDecimalA, bigDecimalB, scale, roundingMode));
System.out.println(compareNum(bigDecimalA, bigDecimalC, scale, roundingMode));
System.out.println(compareNum(new BigDecimal(0), new BigDecimal(0), scale, roundingMode));
}
}