java - Java 计算中处理 NaN 和 Infiniti

标签 java

有一种构建力量的方法。

public static double raisedToPower(double a, double b) {
    return Math.pow(a, b);
}

求值方法可以返回 NaN 和 Infinity 值,这可以在调用时中断程序。

在我看来,我必须在方法中处理这个问题(如果结果是 Infinity 或 NaN - 返回键,可以在方法外部处理)。这就是问题,我可以返回什么作为 key ,或者有其他方法来处理这种情况吗?

public static double raisedToPower(double a, double b) {
    double res = Math.pow(a, b);
    if (Double.isNaN(res) || Double.isInfinite(res)) {
        return key;
    }
    return res;
}

最佳答案

这里有两种方法。

  1. 抛出异常,例如IllegalArgumentException 并带有类似“这些参数的未定义/不可能结果”的消息。
  2. 返回特定值,例如-1。老式的C方式,但经常用于数学运算。

关于java - Java 计算中处理 NaN 和 Infiniti,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37308482/

相关文章:

java - 为什么 IDE BlueJ 没有给出无效 `main()` 声明的错误?

java - 如何监控系统范围内的用户 Activity ?

java - 如何在 JavaFx 中创建可重新排序的 TableView

java - 甚至可以让这个循环每次等待几秒钟吗?

java - 自定义 ListView 适配器空对象引用

java - 用户输入的字符串在输入时的词汇排名

java - Selenium 可以处理自动完成吗?

java - NullPointerException - 读取非空文件返回 Null

java - 设置命令行 Java 错误日志?

java - 为什么我们在连接数据库时使用 Class.forName (“oracle.jdbc.driver.OracleDriver” )?