如何使double类型的数字原样输出?(这个问题不简单)

fuwang 2007-08-02 11:26:15
double类型数字"26431297.512"输出时会变为"2.6431297512E7",现在我想照原样输出为"26431297.512"。
具体要求如下所示:
26431297.51287 --> "26431297.51287"
0.000067 -->"0.000067"
3.3 -->"3.3"
其中的小数位数是动态的。
写一个方法实现:public String double2String(double d){ }
分不够再加。


...全文
680 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzz8153 2008-04-14
  • 打赏
  • 举报
回复
学习
liyanfeng1206 2007-08-07
  • 打赏
  • 举报
回复
有想JVAVA共同学习的和交流的请加QQ群:29252269
kevinliuu 2007-08-07
  • 打赏
  • 举报
回复
up
eidolon_warrior 2007-08-07
  • 打赏
  • 举报
回复
数据库里为啥不设计成BigDecimal的呢。。。
ouanui 2007-08-07
  • 打赏
  • 举报
回复
只是问一下,
这个问题关系到那些基础知识
遇到应该从何处下手
tanxd39 2007-08-07
  • 打赏
  • 举报
回复
double d=4;
System.out.print(d);

这样不就可以了吗?你看看这个方法,可以直接输出DOUBLE类型的呀。。。
joejoe1991 2007-08-07
  • 打赏
  • 举报
回复
学习
axia6395 2007-08-05
  • 打赏
  • 举报
回复
可以做格式化也可以偷懒啊 生成一个Double对象 然后再toString()
wesnow 2007-08-03
  • 打赏
  • 举报
回复
高手
hsuyuan 2007-08-03
  • 打赏
  • 举报
回复
double a = 26431297.51287;

DecimalFormat df = new DecimalFormat("###########.##########");
System.out.println(df.format(a));
liugang203 2007-08-03
  • 打赏
  • 举报
回复
裤衩多了就是牛
  • 打赏
  • 举报
回复
public static String doubleToString(double d) {
  String str = String.format("%.100f", d);
  str = str.replaceAll("(\\.)?0+$", "");
  return str;
}
wcwtitxu 2007-08-03
  • 打赏
  • 举报
回复
public class Test {
public static String doubleToString(double d) {
String s = "00000000000000000000000000000000000000000000000000000000000000000000000000";
java.text.DecimalFormat df = new java.text.DecimalFormat(s + "." + s);
s = df.format(d);
s = s.replaceAll("(?<=^\\-?)0+(?=0\\.)|(?<=^\\-?)0+|\\.0+$", "");
if (s.indexOf(".") != -1)
s = s.replaceAll("0+$", "");
return s;
}

public static void main(String[] args) {
double d = 26431297.512;
System.out.println(Test.doubleToString(d));
d = 34500.0;
System.out.println(Test.doubleToString(d));
d = 0.000067;
System.out.println(Test.doubleToString(d));
d = 3.3;
System.out.println(Test.doubleToString(d));
d = 0;
System.out.println(Test.doubleToString(d));
d = -8;
System.out.println(Test.doubleToString(d));
d = -000800.023000;
System.out.println(Test.doubleToString(d));
d = 0030.20100;
System.out.println(Test.doubleToString(d));
}

}


我是新手,之前也遇过这问题,就用这么个笨方法.

62,614

社区成员

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

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