我有一个浮点值,我需要在逗号后只有两位小数。我正在使用此代码:
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。我怎么能解决这个问题?
答案 0 :(得分:1)
没有机制来限制float
中的小数点数。 float
是float
,并且它具有“无限”小数位数。 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);