我需要打印Double作为字符串,但我不知道会有多少小数位,我必须尽可能多地做好准备。是的,现在我正在使用这个丑陋的解决方案:
Double dubs = 0.000157;
NumberFormat formatter = new DecimalFormat(
"##.########################################################################################");
System.out.println(formatter.format(dubs));
答案 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);