在点后显示最大 X 位数
Show maximum X digits after the dot
我只想在点后显示 7 位数字,如果数字包含的数字少于 7 位,我会遇到问题,由于某种原因,它会用额外的数字填充。
我试过 DecimalFormat("##.#######").format(float value)
和 String.format("%.07f", float value)
示例如下:
- 4.275 显示为 4.275001
- 1 使用
String.format
显示为 1.0000000(使用 DecimalFormat
显示正确)。
如何在不填充数字的情况下显示点后的最大 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());
我只想在点后显示 7 位数字,如果数字包含的数字少于 7 位,我会遇到问题,由于某种原因,它会用额外的数字填充。
我试过 DecimalFormat("##.#######").format(float value)
和 String.format("%.07f", float value)
示例如下:
- 4.275 显示为 4.275001
- 1 使用
String.format
显示为 1.0000000(使用DecimalFormat
显示正确)。
如何在不填充数字的情况下显示点后的最大 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());