永发信息网

如何利用Java中的BigDecimal实现加减乘除功能

答案:1  悬赏:50  手机版
解决时间 2021-04-09 08:04
如何利用Java中的BigDecimal实现加减乘除功能
最佳答案
仅做参考:
import java.math.BigDecimal;   
  
public class Arith{ //默认除法运算精度   
private static final int DEF_DIV_SCALE = 10; //这个类不能实例化   
private Arith(){   
}   
  
public static double add(double v1,double v2){   
BigDecimal b1 = new BigDecimal(Double.toString(v1));   
BigDecimal b2 = new BigDecimal(Double.toString(v2));   
return b1.add(b2).doubleValue();   
}   
  
public static double sub(double v1,double v2){   
BigDecimal b1 = new BigDecimal(Double.toString(v1));   
BigDecimal b2 = new BigDecimal(Double.toString(v2));   
return b1.subtract(b2).doubleValue();   
}   
  
public static double mul(double v1,double v2){   
BigDecimal b1 = new BigDecimal(Double.toString(v1));   
BigDecimal b2 = new BigDecimal(Double.toString(v2));   
return b1.multiply(b2).doubleValue();   
}   
  
public static double div(double v1,double v2){   
return div(v1,v2,DEF_DIV_SCALE);   
}   
  
public static double div(double v1,double v2,int scale){   
if(scale<0){   
throw new IllegalArgumentException(   
"The scale must be a positive integer or zero");   
}   
BigDecimal b1 = new BigDecimal(Double.toString(v1));   
BigDecimal b2 = new BigDecimal(Double.toString(v2));   
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   
}   
  
public static double round(double v,int scale){   
if(scale<0){   
throw new IllegalArgumentException("The scale must be a positive integer or zero");   
}   
BigDecimal b = new BigDecimal(Double.toString(v));   
BigDecimal one = new BigDecimal("1");   
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   
}   
};
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淡淡的忧伤的诗词,带冰字的诗句,最好带点淡淡
开头用不但而且造句子,用唯恐造句 10分
任家石头庄地址有知道的么?有点事想过去
单选题体温过低或过高对人体都有影响,主要是
海口到广州的火车票可以提前多少天买?我是要
选出有三个错别字的一项是A.漠不关心 大声疾
我的名字有个“磊”我女朋友的名字里有个“丹
一项工程,由甲乙两队合做,30天可以完成任务.
能较好说明乙醇分子结构简式为C2H5OH,而不是
龙海市大华涂料有限公司在哪里啊,我有事要去
求爱情公寓2 第12集插曲 酒吧那的。谢谢。
爱情祝福的话,所有祝福的话
一天早晨的气温为-3℃,中午上升了6℃,半夜
高级工程师职称计算机(全国计算机技术应用能
无创DNA检测要多少钱
推荐资讯
哈尔滨理工瑞达管理咨询公司地址在哪,我要去
下列加粗字的解释不完全正确的一组是A.千里迢
什么颜色最能让人入睡
厨房里涉及到许多物理知识,下列说法正确的是
立顿地址有知道的么?有点事想过去
钻石证书没有颜色和净度说明钻石很差吗?
一定量的CaCO3粉末放入到烧杯中,不断地加入
用高压锅煮食物熟的快,是因为锅内气压比标准
单选题关于家庭成员之间的权利和义务,下列说
郑州市管城回族区新世纪幼儿园地址在什么地方
倒装句难题,谁能帮我,愿悬赏100,说到做到
男士洗发水和女士洗发水有什么区别 如果混用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?