double转换成字符串在Java中[复制](Convert double to String in

2019-10-20 14:28发布

这个问题已经在这里有一个答案:

  • 在Java中双小数格式 14回答

我是一个双精度值转换为字符串。

double d=12345678.999;
String str = String.valueOf(d);

或者,只是普通的

String str = ""+d;

这样做,但在指数form--返回字符串值:

1.2345678999E7

我需要的值是String:

12345678.999

有没有办法做到这一点? 我可以解析为exponent--“E”后的部分的价值字符串,并从那里走,但必须有这样做的一个简单的方法。

// ===========================

编辑:

在输入的小数部分的长度是未知的,它可以是任何数量的数字:

12345678.999

要么

12345678.9999999

堂堂一个格式的小数部分会解决的小数位数(?)

Answer 1:

您应该使用NumberFormat的格式化字符串,使他们不会在科学记数法显示。

String str = NumberFormat.getInstance().format(d);


Answer 2:

使用String.format()

double d=12345678.999;
System.out.println(String.format("%12.3f", d));


文章来源: Convert double to String in Java [duplicate]