如何让Double对象toString()时不用科学计数法表示?

lornwolf 2005-03-29 02:38:15
定义了一个Double对象,赋一个像123456789.1234这样的值后,调用toString后返回的是科学计数法表示的字符串,如何能让它不用科学计数法表示呢?
...全文
1895 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
alpha15 2005-03-29
  • 打赏
  • 举报
回复
直接使用Format类来进行格式化
zhgj8750 2005-03-29
  • 打赏
  • 举报
回复
用BigDecimal转换一下就ok了,代码如下:
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;
dooby 2005-03-29
  • 打赏
  • 举报
回复
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);
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧