输入:
import java.math.BigDecimal;public class BigDecimalDemo { final int location=10; //如果没有指定商的保留位数,则默认为10 /** * 定义加法方法,参数为加数和被加数 * @param value1 第1个加数 * @param value2 第2个加数 * @return 两数之和 */ public BigDecimal add(double value1,double value2){ //实例化Decimal对象 BigDecimal b1=new BigDecimal(Double.toString(value1)); BigDecimal b2=new BigDecimal(Double.toString(value2)); return b1.add(b2); } /** * 定义减法方法,参数为被减数和减数 * @param value1 被减数 * @param value2 减数 * @return 两数之差 */ public BigDecimal sub(double value1,double value2){ //实例化Decimal对象 BigDecimal b1=new BigDecimal(Double.toString(value1)); BigDecimal b2=new BigDecimal(Double.toString(value2)); return b1.subtract(b2); } /** * 定义乘法方法,参数为乘数和被乘数 * @param value1 第1个乘数 * @param value2 第2个乘数 * @return 两数之积 */ public BigDecimal mul(double value1,double value2){ //实例化Decimal对象 BigDecimal b1=new BigDecimal(Double.toString(value1)); BigDecimal b2=new BigDecimal(Double.toString(value2)); return b1.multiply(b2); } /** * 定义除法方法,参数为被除数和除数 * @param value1 被除数 * @param value2 除数 * @param value2 保留位数 * @return 两数之商 */ public BigDecimal div(double value1,double value2){ return div(value1, value2, location); //第2个参数为商的小数点后的位数,第3个参数为对商进行四舍五入操作 } /** * 定义除法方法,参数为被除数,除数和保留位数 * @param value1 被除数 * @param value2 除数 * @param value2 保留位数 * @return 两数之商 */ public BigDecimal div(double value1,double value2,int b){ if (b<0) System.out.PRintln("保留位数必须大于等于0"); //实例化Decimal对象 BigDecimal b1=new BigDecimal(Double.toString(value1)); BigDecimal b2=new BigDecimal(Double.toString(value2)); return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP); //第2个参数为商的小数点后的位数,第3个参数为对商进行四舍五入操作 } public static void main(String[] args) { // 测试 BigDecimalDemo b=new BigDecimalDemo(); //默认构造函数 System.out.println("两个数相加:"+b.add(-99999999999999999999999999d, 9999999999999999999999999999d)); System.out.println("两个数相减:"+b.sub(-99999999999999999999999999d, 9999999999999999999999999999d)); //大整数乘法 System.out.println("两个数相乘:"+b.mul(-99999999999999999999999999d, 9999999999999999999999999999d)); System.out.println("两个数相除,结果保留10位小数:"+b.div(9999999999999999999999999999d, 7)); System.out.println("两个数相除,结果保留5位小数:"+b.div(-99999999999999999999999999d, 7, 5)); }}输出:
新闻热点
疑难解答