String cannot be converted to double 错误在函数中
String cannot be converted to double error in a function
我正在尝试在 x 为 NaN 时以字符串格式输出 NaN。但是,当 Double.isNaN 为真时,当我尝试 return string of "NaN" 时,控制台抛出 String cannot be converted to double 错误。我尝试使用 Double.parseDouble() 将字符串 r 解析为双精度但无济于事。
这是我的代码:
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;
}
控制台输出
ActivationFunction.java:6: error: incompatible types: double cannot be converted to String
r = Double.parseDouble(r);
^
ActivationFunction.java:8: error: incompatible types: String cannot be converted to double
if (Double.isNaN(x)) return r;
^
"NaN" 不是 double,您不能将它转换为 double 而不是 return x
因为 Java return 是一个例外您的代码的第 2 行不会继续 运行 代码的其余部分
您正在尝试将 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;
}
希望对您有所帮助。
编码愉快..!
您的问题来自于您尝试将 double
分配给 String
变量这一事实。 r
定义为 String
and Double.parseDouble(r)
returns double
。如果您将其分配给 result
,它将起作用,如下所示:double result = Double.parseDouble(r);
但是,首先不需要从 String
解析新的 double
。你想 return NaN
当 x == NaN
。在这种情况下,您可以只 return x
因为 x
是 NaN
。不需要另一个变量、解析和所有这些。
我正在尝试在 x 为 NaN 时以字符串格式输出 NaN。但是,当 Double.isNaN 为真时,当我尝试 return string of "NaN" 时,控制台抛出 String cannot be converted to double 错误。我尝试使用 Double.parseDouble() 将字符串 r 解析为双精度但无济于事。
这是我的代码:
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;
}
控制台输出
ActivationFunction.java:6: error: incompatible types: double cannot be converted to String r = Double.parseDouble(r); ^ ActivationFunction.java:8: error: incompatible types: String cannot be converted to double if (Double.isNaN(x)) return r; ^
"NaN" 不是 double,您不能将它转换为 double 而不是 return x
因为 Java return 是一个例外您的代码的第 2 行不会继续 运行 代码的其余部分
您正在尝试将 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;
}
希望对您有所帮助。 编码愉快..!
您的问题来自于您尝试将 double
分配给 String
变量这一事实。 r
定义为 String
and Double.parseDouble(r)
returns double
。如果您将其分配给 result
,它将起作用,如下所示:double result = Double.parseDouble(r);
但是,首先不需要从 String
解析新的 double
。你想 return NaN
当 x == NaN
。在这种情况下,您可以只 return x
因为 x
是 NaN
。不需要另一个变量、解析和所有这些。