不能从浮转化为int处理/ Java的
问题描述:
我这里有一些代码:不能从浮转化为int处理/ Java的
int mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x;
}
}
该代码给出了返回值说:“类型不匹配的两个样本的错误:无法从float转换为int “。我的代码有什么问题?
在此先感谢。
答
您需要更改返回类型为float以返回十进制值(如果这就是你所感兴趣的东西):
float mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x;
}
}
答
首先,记住int
和float
是:
-
int
只能保存不带小数点的整数,如1
,42
和-54321
。 -
float
可以容纳带小数点的数字,如0.25
,1.9999
和-543.21
。
所以,你需要弄清楚你的意思,从你的函数返回:它应该是一个int
或float
价值?如果它应该是float
值,那么您可以简单地将函数的返回类型更改为float
。如果您希望它返回值int
,那么您将不得不重新考虑函数内部的逻辑,以便使用int
值。
请注意,您可以使用int()
函数从float
转换为int
。更多信息可在the reference找到。
你应该养成研究你的问题的习惯。使用Google错误信息搜索会给你很多结果,解释发生了什么。 –