无法从 float 转换为 int Processing/Java



我这里有一些代码:

int mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x; 
}
}

此代码在返回值的两个示例上都给出错误,指出"类型不匹配:无法从浮点数转换为 int"。 我的代码有什么问题?

提前谢谢。

您需要将返回类型更改为 float 才能返回十进制值(如果您对此感兴趣(:

float mutate(float x){
if (random(1) < .1){
float offset = randomGaussian()/2;
float newx = x + offset;
return newx;
} else {
return x; 
}
}

首先,记住intfloat是什么:

  • int只能保存没有小数位的整数,如142-54321
  • float可以保存带有小数位的数字,如0.251.9999-543.21

因此,您需要弄清楚要从函数返回的内容:它应该是一个int值还是一个float值?如果它应该是float值,那么您只需将函数的返回类型更改为float即可。如果您希望它返回int值,则必须重新考虑函数内部的逻辑,以便它改用int值。

请注意,您可以使用int()函数从float转换为int。更多信息可以在参考中找到。

最新更新