有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么非strictfp模式下的转换被认为是丢失信息的转换?

我知道strictfp模式下的转换是为了可移植性,而不是this question中提到的准确性。然而,Java语言规范JavaSE8版本说

A widening primitive conversion from float to double that is not strictfp may lose information about the overall magnitude of the converted value.

在我看来,strictfp的扩展原语转换是为了精确。此外,我怀疑double可以代表float可以接受的所有值,在这里,我看不出为什么从float到double的转换是一个问题

编辑:

规范中的措辞“…可能会丢失有关…的信息”让我感觉非strictfp模式下的转换比strictfp模式下的转换更精确。这对我来说没有意义,因为在非strictfp模式下的转换可能会以更高的精度使用中间值。这个问题最初是基于这样的理解而写的,看起来可能不像你预期的那样令人满意


共 (0) 个答案