常见的数学运算积累(一)

    技术2026-01-27  6

    常见的数学运算(一)

    这篇专门用来收集常用的数学运算:

    一:保留两位小数
    import java.math.BigDecimal; public class MathUtil { public static double reservedDecimal(double d,int digit){ BigDecimal bd = new BigDecimal(d); /** * BigDecimal.ROUND_HALF_UP 四舍五入 */ double result = bd.setScale(digit, BigDecimal.ROUND_HALF_UP).doubleValue(); return result; } public static void main(String[] args) { double v = reservedDecimal(32.3245, 4); System.out.println(v); } }
    二: 计算一个数的m次方
    import java.math.BigDecimal; public class MathUtil { public static double MathPower(double n,double m){ double pow = Math.pow(n, m); return pow; } public static void main(String[] args) { double v = MathPower(3, 3); System.out.println(v); } }
    三 位移运算
    public static void main(String[] args) { Integer a = 2 <<10; System.out.println(a); } 输出2048 2=0010 2<<10 = 00100000000000 1x2的11次方 = 2048
    (四)除法不丢失精度(BigDecimal)

    除法不丢失精度,且保留指定位小数

    public static void divideMethod(Double d1,Double d2,int digit){ BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); //b1除以b2,保留digit位小数 Double diResult = b1.divide(b2,digit,RoundingMode.HALF_UP).doubleValue(); //b1乘以b2,保留digit位小数 double muResult = b1.multiply(b2).setScale(digit,RoundingMode.HALF_UP).doubleValue(); //b1加上b2,保留digit位小数 double addResult = b1.add(b2).setScale(digit,RoundingMode.HALF_UP).doubleValue(); //b1减去b2,保留digit位小数 double subResult = b1.subtract(b2).setScale(digit,RoundingMode.HALF_UP).doubleValue(); System.out.println(addResult); System.out.println(subResult); System.out.println(muResult); System.out.println(diResult); }
    Processed: 0.024, SQL: 10