如何在不四舍五入的情况下编写具有 3 位有效数字的字符串

How to write string with 3 significant digits without rounding

我想要 3 位有效数字的转换字符串值。

我正在使用此代码:

String s = "0,92";
float f = Float.parseFloat(s);
DecimalFormat formatter = new DecimalFormat("#,###");
String end = formatter.format(f);

结果是结束= 0.000。但是我想得到 end = 0,920。我怎样才能做到这一点?

这对我有用:

String s = "0.92";
float f = Float.parseFloat(s);
DecimalFormat formatter = new DecimalFormat("0.000");
String end = formatter.format(f);
System.out.println(end); 

请注意“.”在 String s 和 DecimalFormat 中的模式中。
',' 这里表示 1000 标记,即。 1,000,000.00 换一百万。

如果在您当前的语言环境中,小数点分隔符是一个点,那么您将得到 0.920。如果您想获得独立于当前语言环境的结果,将逗号作为小数点分隔符,将点作为千位分隔符,您可以像这样实现它

String s = "0.92";
float f = Float.parseFloat(s);
DecimalFormat formatter = new DecimalFormat("0.000", DecimalFormatSymbols.getInstance(Locale.GERMANY));
String end = formatter.format(f);
System.out.println("end = " + end);

这会打印

 end = 0,920