如何用float返回两位小数?

时间:2013-11-25 10:52:09

标签: java android string decimal

我有一个浮点值,我需要在逗号后只有两位小数。我正在使用此代码:

public static float getWhatINeed() {
  StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
  float total = 
      ((float)statFs.getBlockCount() * statFs.getBlockSize()) / (1073741824);
  return total;
}

它返回例如:12.552425在textview中。我需要显示类似于12.55的内容,这对我来说已经足够了。我看到了这个:

String s = String.format("%.2f", 1.2975118);

某处但我不能在我的情况下使用它因为我使用浮点值而我需要使用float。我怎么能解决这个问题?

4 个答案:

答案 0 :(得分:1)

没有机制来限制float中的小数点数。 floatfloat,并且它具有“无限”小数位数。 String的{​​{1}}显示可能仅限于显示特定小数位数的格式。

如果您真的需要2位小数,请使用BigDecimal

您基本上有4个选项:

  • 返回float并处理有n个小数位的事实
  • 格式为float(这意味着如果需要进行计算,需要进行大量的字符串解析)
  • 转换为使用String
  • 转换为使用BigDecimal并假设数字代表百分之一。

答案 1 :(得分:0)

你有没有尝试过:

new DecimalFormat("00.00").format(1.2975118);

答案 2 :(得分:0)

您可以尝试以下

 DecimalFormat df = new DecimalFormat("0.##");
    float a=1.256f;
    System.out.println(df.format(a));
}

Out put

1.26

答案 3 :(得分:-3)

设置精度后得到String你可以将它转换回浮动

float f = Float.parseFloat(YourString);