java - 点后显示最多 X 位数字

标签 java android string string-formatting

我只想在点后显示 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);

结果如下:

enter image description here

最佳答案

因为数字 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/

相关文章:

python - 在列表的列表中操作字符串

java - 当我有一个使用 @RunWith 的测试套件时,如何获得更多日志记录反馈?

android - 我可以抛出自己的严格模式违规 [在 Android 上] 吗?

c++ - 对 `librarymanager::getBook(std::basic_string<char, std::char_traits<char>, std::allocator<char>>) 的 undefined reference

android - Kotlin:初始化函数和变量初始化

android - Yii 框架和 Android 应用程序

c++ - 如何拆分整数数组中的输入字符串(C++)

java - 强制 Java 上层类型转换类

java - 从字符串中删除所有没有特定字符的字符?

java - 使用处理 3.3.7 的 textSize() 的最大值