常见的数学运算(一)
这篇专门用来收集常用的数学运算:
一:保留两位小数
import java
.math
.BigDecimal
;
public class MathUtil {
public static double reservedDecimal(double d
,int digit
){
BigDecimal bd
= new BigDecimal(d
);
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
);
Double diResult
= b1
.divide(b2
,digit
,RoundingMode
.HALF_UP
).doubleValue();
double muResult
= b1
.multiply(b2
).setScale(digit
,RoundingMode
.HALF_UP
).doubleValue();
double addResult
= b1
.add(b2
).setScale(digit
,RoundingMode
.HALF_UP
).doubleValue();
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
);
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-62446.html