数学轮数的圆数:不起作用

时间:2013-11-27 17:08:54

标签: java android xml

我希望我能理解如何可能没有舍入从以下代码中获得的十进制数。

File path2 = Environment.getDataDirectory();
StatFs stat2 = new StatFs(path.getPath());
long blockSize2 = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
double result = availableBlocks * blockSize;

free = (Preference)this.findPreference("free_mem");
free.setSummary(Double.toString(result)+" GB");

在与此类似的代码中使用此指令并正常工作

result = Math.round(result * 10) / 10d;

为什么不在这里工作,我仍然看到一个带小数位数的数字?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你需要NumberFormat

NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(1);
nf.format(result);

这会生成一个带小数点后1位的数字。

因此如果result6.6789,则会产生6.7

相关:Round number to only first decimal place

只需注意:

如果你这样做:

Math.round(result * 10) / 10d;
你基本上说:

  1. result与10
  2. 相乘
  3. 回合结果
  4. 然后除以十。
  5. 当你在第2步中删除小数时,你会在分割后获得另一组小数。