jdk里面的Double类就是这样实现的toString方法你可以用下面的方法
/**
* 格式化字符串,使金额保留指定位数的小数
* @param douNum
* @param bitNum
* @return
*/
public String getFormatString(String strNum, int bitNum) {
double douNum = Double.parseDouble(strNum);
String format = "0";
if (bitNum <= 0) {
format = "0";
}
else {
format += ".";
for (int i = 0; i < bitNum; i++) {
format += "0";
}
}
DecimalFormat f = new DecimalFormat(format);
return f.format(douNum);
}
/**
* 格式化字符串,使金额保留指定位数的小数
* @param douNum
* @param bitNum
* @return
*/
public String getFormatString(String strNum, int bitNum) {
double douNum = Double.parseDouble(strNum);
String format = "0";
if (bitNum <= 0) {
format = "0";
}
else {
format += ".";
for (int i = 0; i < bitNum; i++) {
format += "0";
}
}
DecimalFormat f = new DecimalFormat(format);
return f.format(douNum);
}
Double dValue = Double.valueOf("123456789.1234");
BigDecimal original = new BigDecimal(dValue.doubleValue());
BigDecimal result = original.setScale(precision, BigDecimal.ROUND_HALF_DOWN);
//precision是格式化小数点后的位数,如要取小数点后2位,则precision=2;