我只想在点后显示 7 位数字,如果该数字包含的数字少于 7 位,我会遇到问题,由于某种原因,它会用额外的数字填充。
我尝试使用 DecimalFormat("##.#######").format(float value)
和 String.format("%.07f", float value )
以下是示例:
- 4.275 显示为 4.275001
- 1 使用
String.format
表示为 1.0000000(使用DecimalFormat
表示为 1.0000000)。
如何在点后显示最多 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);
结果如下:
最佳答案
因为数字 4.275 不能表示为 float ,所以 4.275f 确实代表数字 4.275000095367431640625。
如this answer解释了您应该使用的内容:
float val = 4.275f;
System.out.println(new BigDecimal(val).setScale(7, RoundingMode.DOWN).stripTrailingZeros().toString());
关于java - 点后显示最多 X 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500328/