package com.mhhd_eq;/**
* Title: Programer
* Description:
* Copyright: Copyright (c) 2001
* Company: D&D
* @author Daniel Du
* @version 1.0
*/public class numbercut { public String numberRound(double num, int adec){
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
if (num<0)
num=num-(5/Math.pow(10,(double)(adec+1)));
else if(num>0)
num=num+(5/Math.pow(10,(double)(adec+1)));
}
return numbercut(num,adec);
} public String round(double num, int adec){
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
num=Math.round(num*Math.pow(10,(double)adec))/Math.pow(10,(double)adec);
}
return numbercut(num,adec);
} public String numbercut(double num, int adec) {
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
//java.math.BigDecimal bigdec = new java.math.BigDecimal (num);
String snum = String.valueOf(num);
int idx = snum.indexOf(".");
if (idx<0) {snum+=".";}
snum+="00000000000000000000000000000000";
idx = snum.indexOf(".");
String rtn;
if (adec==0) rtn = snum.substring(0,idx+adec);
else rtn = snum.substring(0,idx+adec+1); return rtn;
}
else
{
return"ERROR. int should be between 0 and 31";
}
}
}
将上面的原代码编译成.class的文件.然后调用他.这样写nc.round(aa,2);aa表示你要四舍五入的那个数字,后面的2代表小数点后要保留的位数.
* Title: Programer
* Description:
* Copyright: Copyright (c) 2001
* Company: D&D
* @author Daniel Du
* @version 1.0
*/public class numbercut { public String numberRound(double num, int adec){
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
if (num<0)
num=num-(5/Math.pow(10,(double)(adec+1)));
else if(num>0)
num=num+(5/Math.pow(10,(double)(adec+1)));
}
return numbercut(num,adec);
} public String round(double num, int adec){
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
num=Math.round(num*Math.pow(10,(double)adec))/Math.pow(10,(double)adec);
}
return numbercut(num,adec);
} public String numbercut(double num, int adec) {
if(Double.isNaN(num))return "NaN";
if ((adec>=0)&&(adec<32))
{
//java.math.BigDecimal bigdec = new java.math.BigDecimal (num);
String snum = String.valueOf(num);
int idx = snum.indexOf(".");
if (idx<0) {snum+=".";}
snum+="00000000000000000000000000000000";
idx = snum.indexOf(".");
String rtn;
if (adec==0) rtn = snum.substring(0,idx+adec);
else rtn = snum.substring(0,idx+adec+1); return rtn;
}
else
{
return"ERROR. int should be between 0 and 31";
}
}
}
将上面的原代码编译成.class的文件.然后调用他.这样写nc.round(aa,2);aa表示你要四舍五入的那个数字,后面的2代表小数点后要保留的位数.
DecimalFormat df = new DecimalFormat("#.00000");
System.out.println(df.format(a ));