警告与错误

问题描述 投票:0回答:2

我遇到了一个恼人的问题,在 BlueJ 上编译我的 Java 程序时出现了 “可能会丢失精度” 错误(但据我了解,这并未连接到特定的 IDE)。

令我惊讶的是,编译器告诉我可能会出现精度损失,并且不允许我编译/运行该程序。 为什么这是一个错误而不是警告说如果你不想改变你的代码,你可能会在这里失去精度?

当我删除浮点值时,程序运行得很好;没关系,因为我的屏幕上没有任何意义(例如 [143.08, 475.015])。

另一方面,当我循环遍历 ArrayList 时,在这个循环中,我有一个 if 子句从 ArrayList 中删除元素,它运行良好,只是抛出一个错误,并且在一小部分时间内不显示 ArrayList [用于绘制圆圈]。一秒钟。在我看来,这是一个严重的错误,但不会造成(几乎)任何麻烦,而我根本不想在我的代码中出现这样的事情。

边界是什么?

java warnings
2个回答
2
投票

这是一个错误,因为规范不允许在 Assignment Conversion 中缩小基元转换。

如果您确实想将较大的数据类型分配给较小的数据类型,例如将

double
分配给
float
,则必须显式转换它。


0
投票

这可能会导致难以检测的计算错误。所以这是正确的 - 你不希望程序给你结果中存在未知错误的结果。

© www.soinside.com 2019 - 2024. All rights reserved.