如何编写带有3位有效数字的字符串而不进行舍入

时间:2015-01-08 08:38:15

标签: java string digits significant-digits

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

我正在使用此代码:

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

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

2 个答案:

答案 0 :(得分:0)

这对我有用:

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。

答案 1 :(得分:0)

如果在您当前的语言环境中,小数点分隔符是一个点,那么您将获得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