将Double打印为具有未知十进制长度的字符串

时间:2017-10-09 19:46:23

标签: java

我需要打印Double作为字符串,但我不知道会有多少小数位,我必须尽可能多地做好准备。是的,现在我正在使用这个丑陋的解决方案:

Double dubs = 0.000157;

NumberFormat formatter = new DecimalFormat(
    "##.########################################################################################");
System.out.println(formatter.format(dubs));

3 个答案:

答案 0 :(得分:1)

您无需转换即可执行此操作:

public class codesnippets {

 public static void main(String[] args)
 {
     Double dubs = 0.000157;
     System.out.printf("%f", dubs);
 }

}

您也可以使用

Double dubs = 0.000157;
String dubs_format = String.format("%f", dubs);
System.out.println(dubs);

编辑:使用"%f"显然会出现精确损失。作为格式字符串。如果是这种情况,请使用"%。10f"

答案 1 :(得分:0)

试试这里的男人。我想这就是你所说的。答案在底部给出。

Number of decimal digits in a double

这就是我的意思。

double d= 234.12413;
String text = Double.toString(Math.abs(d));
int integerPlaces = text.indexOf('.');
int decimalPlaces = text.length() - integerPlaces - 1;

然后你只是将它们连接起来

String xmlString = integerPlaces.toString() + "." + decimalPlaces.toString();

答案 2 :(得分:0)

这似乎是基于Steampunkery的想法。问题是,我需要一个实际的字符串,我意识到我不清楚。

String dubString= String.format("%f", dubs); 
System.out.println(dubString);