代码之家  ›  专栏  ›  技术社区  ›  Samuel

警告与错误

  •  0
  • Samuel  · 技术社区  · 14 年前

    我有个恼人的问题 “可能的精度损失” 编译BLUJ时的Java程序时出错(但是从我读到的程序中没有连接到特定的IDE)。

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

    当我删除浮点值时,程序运行得很好;这并不重要,因为我的屏幕上没有点(例如[143.08475.015])。

    另一方面,当我循环通过一个arraylist时,在这个循环中,我有一个if子句从arraylist中删除元素,它运行良好,只会抛出一个错误,并且在不到一秒钟的时间内不显示arraylist[用于绘制圆]。在我看来,这是一个严重的错误,但不会(几乎)造成任何麻烦,尽管我根本不想在代码中有这样的东西。

    边界是什么?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Powerlord    14 年前

    这是一个错误,因为规范不允许在 Assignment Conversion .

    如果您真的想将较大的数据类型分配给较小的数据类型,例如 double float ,必须显式强制转换。

        2
  •  0
  •   Rostislav Matl    14 年前

    这可能导致计算错误,很难检测到。所以这是正确的,它是错误的-你不希望一个程序给你结果中有未知错误的结果。