java - 删除 float 的尾随数字

标签 java floating-point rounding

我的 java 程序中有一些浮点变量:

float var1=1.23456f;
float var2=2.34567f;

在我的计算中,浮点变量中小数点后的位数会增加和减少以保持精度。例如经过一些计算 System.out.println(var1); 可以打印:

6.35

9.4500082E

88.25214

我想将这些值四舍五入到小数点后 3 位,并删除后续的小数位,以便 float 四舍五入,如下所示:

6.350   9.450   88.252

据我所知,NumberFormat 和 String.format() 将输出返回为格式化字符串。如何获得四舍五入 float 的输出,以便在计算中进一步使用它? 我可以对浮点(Float)变量(实例)应用规则,以始终四舍五入/删除小数点后 3 位后的尾随数字吗?

最佳答案

不,您无法获得“四舍五入的 float ”。 float 不存储十进制数。如果您想使用特定数量的十进制位数进行计算,请使用 BigDecimal。

其他答案都不能给你真正想要的东西。

关于java - 删除 float 的尾随数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18936350/

相关文章:

java - 我可以在退出时让 Eclipse 关闭所有项目吗?

python - 如何有效地将 numpy 数组的一列舍入到最接近的 0.5?

java - 在 Java 中搜索堆栈时遇到问题

c++ - 了解浮点精度

c# - 如何以 2 个字节保存 float ?

Python数组相乘

r - R 中浮点精度的极端数值

ios - 使用 ceil 或 round 时对成员的引用不明确

java - 从外部目录运行 Shell 脚本 : No such file or directory

java - 从 mvn jetty :run 启动 Jetty 时出错