gpt4 book ai didi

java - 当其中一个 float 结果为 NaN 时,我可以让 Java 在 float 之间进行比较时抛出异常吗?

转载 作者:搜寻专家 更新时间:2023-10-31 19:49:51 26 4
gpt4 key购买 nike

我今天花了大约 2 个小时来追踪一个错误,如果在将 NaN 与 float 进行比较时,如果 java 抛出异常,我会更快地发现它。如果我将来能保护自己免受这种情况的影响,那就太好了。感谢您的帮助。

最佳答案

JVM instruction set reference特别禁止执行 float 学运算的字节代码抛出异常,并严格指定当 NaN 是操作数时它们应该如何工作。如果有办法做到这一点,它要么要求您明确抛出 NaN 异常,要么使用自定义编译器为您插入这些检查。

一个可能有用的选项是编写如下函数:

public static float check(float value) {
if (Float.isNaN(value))
throw new ArithmeticException("NaN");
return value;
}

有了这个,你可以编写代码来达到这个效果:

float f = check(myOtherFloat / yetAnotherFloat);

这将进行计算并抛出错误。理想情况下,使用简短的函数名称不会太突兀。

W

关于java - 当其中一个 float 结果为 NaN 时,我可以让 Java 在 float 之间进行比较时抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com