玖叶教程网

前端编程开发入门

纳尼!50减去0等于0???敲黑板划重点了


今天正忙的焦头烂额,领导突然问我为啥他写的代码50 减去0等于 0?

头上冒出三条黑线,作为领导你还真是啥奇葩问题都能遇到

小女不才,给出以下方法

BigDecimal b1 = BigDecimal.valueOf(500);

BigDecimal b2 = BigDecimal.valueOf(0);

int count = b1.subtract(b2).intValue();


结合上次遇到的问题,以后代码中的加减乘除还是都使用BigDecimal吧,总结方法如下


public static double add(double v1, double v2) {


BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.add(b2).doubleValue();

}


//精确的减法运算

public static double sub(double v1, double v2) {


BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.subtract(b2).doubleValue();

}


//精确的乘法运算

public static double mul(double v1, double v2) {


BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.multiply(b2).doubleValue();

}


//提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点后10位的数字四舍五入

public static double div(double v1, double v2) {


BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();

}

分享完毕!!!以后关于计算还是都转型成BigDecimal吧

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言