在点后显示最大 X 位数

Show maximum X digits after the dot

我只想在点后显示 7 位数字,如果数字包含的数字少于 7 位,我会遇到问题,由于某种原因,它会用额外的数字填充。

我试过 DecimalFormat("##.#######").format(float value)String.format("%.07f", float value)

示例如下:

如何在不填充数字的情况下显示点后的最大 X 位数?

编辑

这里是代码示例:

TextView tvDec = (TextView) findViewById(R.id.tvDecimal);
TextView tvStringFormat = (TextView) findViewById(R.id.tvStringFormat);
float num = 4.275f;
String finalNum = new DecimalFormat("##.#######").format(Float.valueOf(num));
tvDec.setText(finalNum);
finalNum = String.format("%.07f", Float.valueOf(num));
tvStringFormat.setText(finalNum);

结果如下:

也许你可以做类似的事情

new BigDecimal(number).setScale(7, RoundingMode.CEILING).stripTrailingZeros().toPlainString();

因为4.275不能表示为浮点数,4.275f确实表示4.275000095367431640625。

正如 this answer 所解释的那样,您应该使用:

float val = 4.275f;
System.out.println(new BigDecimal(val).setScale(7, RoundingMode.DOWN).stripTrailingZeros().toString());