数字精确计算.docx
- 文档编号:25540343
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:23
- 大小:17.33KB
数字精确计算.docx
《数字精确计算.docx》由会员分享,可在线阅读,更多相关《数字精确计算.docx(23页珍藏版)》请在冰豆网上搜索。
数字精确计算
packagecom.himyidea.util;
importjava.math.BigDecimal;
/**
*
*@ClassName:
NumberAdd
*
*@Description:
两数相加乘除
*@authorPineTree
*@date2015年3月2日下午1:
35:
58
*@version
*/
publicclassNumberOperator{
/**
*提供精确的加法运算
*
*@paramd1
*加数
*@paramd2
*被加数
*@returndouble
*/
publicstaticdoubleadd(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.add(b2).doubleValue();
}
/**
*
*@Title:
add
*@Description:
提供精确的加法运算,并精确到小数后X位
*@paramd1加数
*@paramd2被加数
*@paramscale保留小数后几位
*@returndouble
*@throws
*/
publicstaticdoubleadd(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.add(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的加法运算
*
*@paramd1
*加数
*@paramd2
*被加数
*@returnString
*/
publicstaticStringadd1(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.add(b2).toString();
}
/**
*
*@Title:
add1
*@Description:
提供精确的加法运算,并精确到小数后X位
*@paramd1加数
*@paramd2被加数
*@paramscale保留小数后几位
*@returndouble
*@throws
*/
publicstaticStringadd1(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.add(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供精确的加法运算-->String参数
*
*@params1
*加数
*@params2
*被加数
*@returndouble
*/
publicstaticdoublestringAdd(Strings1,Strings2){
BigDecimalb1=newBigDecimal(s1);
BigDecimalb2=newBigDecimal(s2);
returnb1.add(b2).doubleValue();
}
/**
*
*@Title:
stringAdd
*@Description:
提供精确的加法运算,并精确到小数后X位
*@params1加数
*@params2被加数
*@paramscale保留小数后几位
*@returndouble
*@throws
*/
publicstaticdoublestringAdd(Strings1,Strings2,intscale){
BigDecimalb1=newBigDecimal(s1);
BigDecimalb2=newBigDecimal(s2);
returnb1.add(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的加法运算
*
*@paramd1
*加数
*@paramd2
*被加数
*@returnString
*/
publicstaticStringadd(Stringd1,Stringd2){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.add(b2).toString();
}
/**
*
*@Title:
add
*@Description:
提供精确的加法运算,并精确到小数后X位
*@paramd1加数
*@paramd2被加数
*@paramscale保留小数后几位
*@returndouble
*@throws
*/
publicstaticStringadd(Stringd1,Stringd2,intscale){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.add(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供精确的减法运算
*
*@paramd1
*减数
*@paramd2
*被减数
*@returndouble
*/
publicstaticdoublesubtract(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.subtract(b2).doubleValue();
}
/**
*
*@Title:
subtract
*@Description:
提供精确的减法运算,保留小数后X位
*@paramd1减数
*@paramd2被减数
*@paramscale精确到小数后x位
*@returndouble
*@throws
*/
publicstaticdoublesubtract(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.subtract(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的减法运算
*
*@paramd1
*减数
*@paramd2
*被减数
*@returnString
*/
publicstaticStringsubtract1(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.subtract(b2).toString();
}
/**
*
*@Title:
subtract
*@Description:
提供精确的减法运算,保留小数后X位
*@paramd1减数
*@paramd2被减数
*@paramscale精确到小数后x位
*@returnString
*@throws
*/
publicstaticStringsubtract1(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.subtract(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供精确的减法运算
*
*@paramd1
*减数
*@paramd2
*被减数
*@returndouble
*/
publicstaticdoublesubtract(Stringd1,Stringd2){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.subtract(b2).doubleValue();
}
/**
*
*@Title:
subtract
*@Description:
提供精确的减法运算,保留小数后X位
*@paramd1减数
*@paramd2被减数
*@paramscale精确到小数后x位
*@returndouble
*@throws
*/
publicstaticdoublesubtract(Stringd1,Stringd2,intscale){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.subtract(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的减法运算-->String参数
*
*@paramd1
*减数
*@paramd2
*被减数
*@returnString
*/
publicstaticStringstringSubtract(Stringd1,Stringd2){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.subtract(b2).toString();
}
/**
*
*@Title:
subtract
*@Description:
提供精确的减法运算,保留小数后X位
*@paramd1减数
*@paramd2被减数
*@paramscale精确到小数后x位
*@returnString
*@throws
*/
publicstaticStringstringSubtract(Stringd1,Stringd2,intscale){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.subtract(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供精确的乘法运算
*
*@paramd1
*乘数
*@paramd2
*被乘数
*@returndouble
*/
publicstaticdoublemultiply(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.multiply(b2).doubleValue();
}
/**
*
*@Title:
multiply
*@Description:
提供精确的乘法运算,并保留小数后X位
*@paramd1乘数
*@paramd2被乘数
*@paramscale保留小数后几位
*@returndouble
*@throws
*/
publicstaticdoublemultiply(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.multiply(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的乘法运算
*
*@paramd1
*乘数
*@paramd2
*被乘数
*@returnString
*/
publicstaticStringmultiply1(doubled1,doubled2){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.multiply(b2).toString();
}
/**
*
*@Title:
multiply1
*@Description:
提供精确的乘法运算,并保留小数后X位
*@paramd1乘数
*@paramd2被乘数
*@paramscale保留小数后几位
*@returnString
*@throws
*/
publicstaticStringmultiply1(doubled1,doubled2,intscale){
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.multiply(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供精确的乘法运算-->String
*
*@paramd1
*乘数
*@paramd2
*被乘数
*@returndouble
*/
publicstaticdoublestringMultiply(Stringd1,Stringd2){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.multiply(b2).doubleValue();
}
/**
*
*@Title:
stringMultiply
*@Description:
提供精确的乘法运算,并保留小数后X位
*@paramd1乘数
*@paramd2被乘数
*@paramscale保留小数后几位
*@returnString
*@throws
*/
publicstaticdoublestringMultiply(Stringd1,Stringd2,intscale){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.multiply(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供精确的乘法运算-->String
*
*@paramd1
*乘数
*@paramd2
*被乘数
*@returndouble
*/
publicstaticStringstringMultiply1(Stringd1,Stringd2){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.multiply(b2).toString();
}
/**
*
*@Title:
stringMultiply1
*@Description:
提供精确的乘法运算,并保留小数后X位
*@paramd1乘数
*@paramd2被乘数
*@paramscale保留小数后几位
*@returnString
*@throws
*/
publicstaticStringstringMultiply1(Stringd1,Stringd2,intscale){
BigDecimalb1=newBigDecimal(d1);
BigDecimalb2=newBigDecimal(d2);
returnb1.multiply(b2).setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供(相对)精确的除法运算,当发生除不尽的时候,精确到scale参数指定精度,以后的数字四舍五入
*
*@paramd1
*除数
*@paramd2
*被除数
*@paramscale
*精确度
*@returndouble
*/
publicstaticdoublediv(doubled1,doubled2,intscale){
if(scale<0){
thrownewIllegalArgumentException(
"Thescalemustbeapositiveintegerorzero");
}
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*提供(相对)精确的除法运算,当发生除不尽的时候,精确到scale参数指定精度,以后的数字四舍五入
*
*@paramd1
*除数
*@paramd2
*被除数
*@paramscale
*精确度
*@returnString
*/
publicstaticStringdiv1(doubled1,doubled2,intscale){
if(scale<0){
thrownewIllegalArgumentException(
"Thescalemustbeapositiveintegerorzero");
}
BigDecimalb1=newBigDecimal(Double.toString(d1));
BigDecimalb2=newBigDecimal(Double.toString(d2));
returnb1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).toString();
}
/**
*提供(相对)精确的除法运算,当发生除不尽的时候,精确到scale参数指定精度,以后的数字四舍五入-->String
*
*@paramd1
*除数
*@paramd2
*被除数
*@paramscale
*精确度
*@returndouble
*/
publicstaticdoublestringDiv(Stringd1,Stringd2,intscale
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 精确 计算