我想根据用户输入改变我正在格式化的字符串中 double 表示的精度。现在我正在尝试类似的东西:
String foo = String.format("%.*f\n", precision, my_double);
但是我收到 java.util.UnknownFormatConversionException
。我对这种方法的灵感来自 C printf 和 this resource (第 1.3.1 节)。
我在某处是否有简单的语法错误,Java 是否支持这种情况,或者有更好的方法吗?
编辑:
我想我可以这样做:
String foo = String.format("%." + precision + "f\n", my_double);
但我仍然对此类操作的原生支持感兴趣。
最佳答案
您回答了自己的问题 - 动态构建格式字符串...有效的格式字符串遵循此处概述的约定:http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax .
如果您想要一个总共占用 8 个字符(包括小数点)的格式化小数,并且您希望小数点后有 4 个数字,那么您的格式字符串应该类似于“%8.4f”...
据我所知,除了格式字符串灵活之外,Java 中没有“原生支持”。
关于java - 如何以可变精度进行 Java String.format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301047/