无法从float转换为int Processing / Java

时间:2017-07-28 13:06:29

标签: processing

我在这里有一些代码:

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

此代码在返回值为“类型不匹配:无法从float转换为int”的值的两个示例上都给出错误。我的代码出了什么问题?

提前致谢。

2 个答案:

答案 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)

首先,请记住intfloat是什么:

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

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

请注意,您可以使用float功能从int转换为int()。更多信息可以在the reference找到。