今天 get到了一个新知识,也就是 BigDecimal,顺便也mark一下
对于一些小数的计算用BigDecimal就比较方便
public static void main(String[] args){
double a = 1.33;
float b = 3.2f;
BigDecimal num1 = new BigDecimal(Double.toString(a));
BigDecimal num2 = new BigDecimal(Float.toString(b));
System.out.println("+ = "+num1.add(num2));
System.out.println("- = "+num1.subtract(num2));
System.out.println("x = "+num1.multiply(num2));
System.out.println("/ = "+num1.divide(num2));
// 保留两位小数且四舍五入
System.out.println("/ = "+num1.divide(num2,2,BigDecimal.ROUND_HALF_UP));
}
运行结果
以及除法的舍入模式
ROUND_CEILING //向正无穷方向舍入
ROUND_DOWN //向零方向舍入
ROUND_FLOOR //向负无穷方向舍入
ROUND_HALF_DOWN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
ROUND_HALF_EVEN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN
ROUND_HALF_UP //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6,也就是我们常说的“四舍五入”
ROUND_UNNECESSARY //计算结果是精确的,不需要舍入模式
ROUND_UP //向远离0的方向舍入
Comments | NOTHING