在函数中不能将字符串转换为双倍的错误。

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

当x为NaN时,我试图以字符串格式输出NaN。然而,当我试图在Double.isNaN为真时返回 "NaN "的字符串时,控制台出现了String cannot be converted to double的错误。我试着用Double.parseDouble()将字符串r解析为double,但没有用。

这是我的代码。

public static double heaviside(double x) {
    String r = "NaN";
    r = Double.parseDouble(r);
    double result;
    if (Double.isNaN(x)) return r;
    else if (x < 0.0) return result = 0.0;
    else if (x == 0.0) return result = 0.5;
    else return result = 1.0;
}

Console output

ActivationFunction.java:6: error: incompatible types: double cannot be converted to String r = Double.parseDouble(r); ^ ActivationFunction.java:8: error: incompatible types: String不能转换为double if (Double.isNaN(x)) return r; ^。

java function double
1个回答
1
投票

你正在尝试将String转换为double并将其值存储在 r 这是一种 String.

你应该创建另一个变量 double 类型,并可以像这样将该值存储在该。

public static double heaviside(double x) {
    String r = "NaN";
    double d = Double.parseDouble(r);
    double result;
    if (Double.isNaN(x)) return d;
    else if (x < 0.0) return result = 0.0;
    else if (x == 0.0) return result = 0.5;
    else return result = 1.0;
}

希望能帮到你 编码愉快...!


3
投票

你的问题来自于这样一个事实,即你试图将这个值赋给 doubleString 变量。r 被定义为 String and Double.parseDouble(r) 返回 double. 它将工作,如果你assing它到 result 来代替,就像这样。double result = Double.parseDouble(r);

然而,没有必要解析新的... doubleString 在第一时间。你想回到 NaNx == NaN. 你可以直接返回 x 在这种情况下,因为,嗯, xNaN. 不需要另一个变量,解析和所有这些。


0
投票

"NaN "不是一个双数,你不能把它转换为双数而不返回。x 因为Java在你的代码的第2行返回一个异常,而不会继续运行代码的其余部分。

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