我在这里有一些代码:
int mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x;
}
}
此代码在返回值为“类型不匹配:无法从float转换为int”的值的两个示例上都给出错误。我的代码出了什么问题?
提前致谢。
答案 0 :(得分:3)
您需要将返回类型更改为float以返回小数值(如果这是您感兴趣的内容):
float mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x;
}
}
答案 1 :(得分:3)
首先,请记住int
和float
是什么:
int
只能包含没有小数位的整数,例如1
,42
和-54321
。float
可以包含带小数位的数字,例如0.25
,1.9999
和-543.21
。所以,你需要弄清楚你想从函数中返回什么:它应该是int
还是float
值?如果它应该是float
值,那么您只需将函数的返回类型更改为float
即可。如果您希望它返回int
值,那么您必须重新考虑函数内部的逻辑,以便使用int
值。
请注意,您可以使用float
功能从int
转换为int()
。更多信息可以在the reference找到。