有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么即使我声明了rand,它也会给我一个错误?

import java.util.Random;

class perro{
    private Float animo;
    private Float umbral;
    Random rand = new Random();
    
    public perro(){
        animo = rand.nextFloat() * (5+5)-5;
        umbral = rand.nextFloat() * (0-20);
    }
    
    public Float getAnimo(){
        return animo;
    }
    
    public Float getUmbral(){
        return umbral;
    }
    
    private void psican(persona p){
        this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;
        if (p.tieneGalleta()){
            p.darGalleta();
            this.animo += (1.0 / p.getConfiabilidad()) * (rand.nextInt(2));
        }
    
    System.out.println("Mi nuevo animo es: " + this.animo);
    }

我收到了这个错误:

 "error: incompatible types: double cannot be converted to Float
            this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;"

我已经检查了所有的东西,但是,从一开始,所有的东西都是浮点数


共 (1) 个答案

  1. # 1 楼答案

    因为0.5double(不是float)。改变这个

    this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;
    

    this.animo = (rand.nextFloat() -0.5f) * 10 + this.animo;
    

    this.animo += (rand.nextFloat() - 0.5f) * 10;